【问题标题】:C++ float storage [duplicate]C ++浮点存储[重复]
【发布时间】: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.

为什么不能准确存储第一个值,但可以存储较大的第二个值?

【问题讨论】:

标签: c++ floating-point


【解决方案1】:

典型的 32 位浮点数具有大约 24 位的整数精度。即使它更大,您也能够精确地存储您的值,这仅仅是因为它达到了一个看起来像整数的最佳位置,而另一个则没有。

具体而言,数字 79282056 存储为 1.1813947 * 226 或 79282056.2526208。所以不准确,小数点后面有一些数字被你省略了。

您可以使用this converter 来检查用于存储任何浮点数的尾数、符号和指数。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-09-02
    • 2013-05-11
    • 2012-10-27
    • 2021-09-16
    • 2011-02-23
    • 2011-10-15
    相关资源
    最近更新 更多