Выполнение этого кода дает те же точные цифры в обоих случаяхПочему точность float такая же, как у double?
double test = 0.5d;
while (1d != 1d + test) {
Console.WriteLine(test);
test /= 2d;
}
Последняя строка вывода: 2,22044604925031E -16
float test2 = 0.5f;
while (1f != 1f + test2) {
Console.WriteLine(test2);
test2 /= 2f;
}
Последняя строка вывода: 2,220446E -16
В соответствии с официальными документами MSDN (float и double) вывод теста на поплавок d были чем-то вроде 2,220446E -7. У меня есть концептуальное недоразумение или ошибка программирования?
здесь точность число разрядов может быть сохранен после самой ценной цифры. точность не означает точность ее числа –