Столкнулся с простой задачей. Нужно вырезать первые два символа после точки в типе double. Например есть число
price = 26.109000006
Я должен получить 10. Не 26.10, а просто 10. Без каких либо округление.
Если конвертировать это число в стринг и вырезать первые числа после точки то это делается так.
string stringPrice = price.ToString();
stringPrice = stringPrice.Substring(stringPrice.IndexOf(',')+1);
На выходи будет 10. Но есть один нюанс. Если попадется число например вот такое
26.10000000 То метод ToString() вернет мне не 26.10000000 а 26.1 и на строке
stringPrice = stringPrice.Substring(stringPrice.IndexOf(',')+1); я уже поймаю исключение.
По идеи метод ToString() должен был бы конвертнуть вот так "26.10000000". Но нет, он обрезать нули.
Вообще-то есть подозрение что я вовсе неправильным путем пошел. Моя окончательная цель просто сравнение первых 2-х символом после точки равны ли они 0. Просто может попасться число 26.0000000005 и тогда на целое число не проверю
Как можно просто получить первые два числа после точки без округлений и обрезаний нулей. Спасибо
То что у вас "не нули" можно проверить так:
(26.0000000005 - 26) >= 0.01 - false
(26.109000006 - 26) >= 0.01 - true
Ну или более обобщенный вариант: (number - Math.Truncate(number)) >= 0.01
Сборка персонального компьютера от Artline: умный выбор для современных пользователей