2016-08-02 5 views
0

я хотел бы знать, что это моя проблема, когда я пытаюсь напечатать несколько значений с плавающей точкой, например, в этой простой программе:В чем дело с печатью значений поплавка?

float n = 127.998 ; 
printf("%f",n); 

Казнь дает: 127.998001.

  • Так почему у меня есть дополнительный задняя часть этого числа?

attached image

+0

См. Также http://stackoverflow.com/questions/12635537/c-floating-point-precision – Ari0nhh

+2

Обязательно [Что каждый компьютерный ученый должен знать о арифметике с плавающей точкой] (http://docs.oracle.com/ кд/E19957-01/806-3568/ncg_goldberg.html) – Caw

ответ

0

Некоторые значения не могут быть точно сохранены в тип данных с плавающей точкой. Нет гарантии, что ваш float n = 127.998 будет фактически сохранен как точно 127.998. Для значений, которые не могут быть точно представлены в типах с плавающей запятой, вместо этого сохраняется самое близкое к этому значение, которое вы получили.

Смежные вопросы