Я пытаюсь написать программу C, чтобы найти наименьшее положительное целое число x, так что (1/x) * x не равно 1, используя одинарную точность. И я делаю это снова с двойной точностью. Я знаю, что х для одинарной точности является 41, однако, когда я проверить его написания кода C, я все еще получаю 1.00000Округление с плавающей запятой
Это мой тестовый код
int main()
{
float x = 41;
float div = 1/x;
float test = div * x;
printf("%f\n", test);
}
я получаю 1,0000 вместо 0,999999
см. Http://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html - это просто представление числа –
@EdHeal Как мне получить значение 0.999999? – jqdc2224
@ jqdc2224, попробуйте 'printf ("%. 10f \ n ", test);' –