我无法理解以下程序生成的输出:
#include <stdio.h>
main()
{
float d =245.3;
char c = 'A';
printf("d = %f",d);
d = d+c;
printf("\nd = %f",d);
getch();
return 0;
}
Output:
d = 245.3000003
d = 310.2999988
虽然d是245.3,但是打印245.3000003。 加上65之后,这是不准确的。
答案 0 :(得分:0)
浮动有精确问题。原因是0.1并不能用浮点数完美表示。
一个很好的阅读开头: - What every computer scientist should know about floating-point arithmetic