【发布时间】:2012-01-20 10:06:03
【问题描述】:
可能重复:
Dealing with accuracy problems in floating-point numbers
代码:
float flt = 78983636; // stores 78983632. as seen in debugger
flt = 79282056; // stores 79282056.
为什么不能准确存储第一个值,但可以存储较大的第二个值?
【问题讨论】:
-
“更大”与此无关。请查看我对另一个问题的回答(关于 Java 和双打,但同样的概念适用):stackoverflow.com/questions/7811112/…
-
或者做一个简单的例子:假设你只能将
n存储为整数,它代表10^n。现在您可以完美地存储 1000、10.000 等,但很难正确表示 5。浮点数的类似原理 - 它只是变得有点复杂,因为我们想要存储的不仅仅是 2^something 。
标签: c++ floating-point