Почему это простое консольное приложение выводит 100000000000000
вместо 99999999999999.99
или по крайней мере 99999999999999.984
, как показывает отладчик?
static void Main(string[] args)
{
double bigNum = 99999999999999.99;
Console.WriteLine(bigNum); //Console.WriteLine will internally ToString, but you can add what ever ToString() you want here the result will always be undesired
}
Выход на консоль:
Вывод отладки:
Для уточнения:
Да, я знаю тип значения decimal
и его высшую точность по сравнению с double
, но я никогда не слышал о том, что ToString()
из double
может дать неправильные результаты.