操作:-f1-80000 f2-79999.9
我希望输出为79999.95。我知道上面评论的setprecision如果使用将打印值为79999.95,但我想稍后使用该值...为了准确...哪些没有完成。
答案 0 :(得分:1)
浮子的ULP(最后位置的单位)是2 ^ -23~1.2 x 10 ^ -7。因此,您无法保证最后一位数。
答案 1 :(得分:0)
IEEE754单精度float
无法存储79999.95
。如果float
需要32位存储且范围大于2的32次方,并且一些非整数包含在可能值的集合中,那就不足为奇了。
最接近的IEEE754 float
实际上是79999.953125。很多打印功能足够聪明,可以自动为这个号码丢弃最后的4位数字。
真的没有惊喜。就像最接近的long
是80000
。
如果您想要更密集的实数,请使用double
。