Я работаю над чем-то, и у меня есть проблема, которую я не понимаю.Деление на 100 точность
double d = 95.24/(double)100;
Console.Write(d); //Break point here
Выход консоли 0,9524 (как и ожидалось), но если я смотрю на «D» после купирован программы она возвращает 0,95239999999999991.
Я пробовал все возможные варианты, и результат остается тем же. Проблема в том, что я использую 'd' в другом месте, и эта точная проблема заставляет мою программу работать.
Так почему же это так? Как я могу это исправить?
Есть так много вопросов с номерами с плавающей запятой, как здесь, на SO –
Угадайте формат по умолчанию Double.ToString показывает только 4 первых десятичных знака. Вы должны перейти к десятичному типу, если хотите точное представление (float и double не являются точными представлениями) –