你如何向仍然认为计算机是无限智能和准确的新鲜程序员和外行人解释浮点不准确?
你有一个最喜欢的例子或轶事似乎比一个精确但干燥的解释更好地理解这个想法吗?
这是如何在计算机科学课程中教授的?
void main()
{
float a = 0.7;
if (a < 0.7)
printf("c");
else
printf("c++");
}
Run Code Online (Sandbox Code Playgroud)
在上面的0.7问题中,将打印"c",但是对于0.8,将打印"c ++".为什么?
那么浮点数是如何用二进制形式表示的?
在某些地方,提到内部0.7将存储为0.699997,但0.8存储为0.8000011.为什么这样?