c++ - 浮点常量值不同,具体取决于它的声明方式 C++ (Xcode IDE)

标签 c++ xcode floating-point constants

我正在学习 C++ Primer Plus,使用 Xcode 作为我的 IDE,其中一项练习要求将值 0.0254 分配给符号常量(将英寸转换为米)。问题是,当我声明常量时,我​​得到的值为 0.0253999997。我正在声明常量,如下所示。

#include <iostream>
const float METERS_PER_INCH = .0254;

最佳答案

这是由于 float 在以 2 为基数的数字系统中存储数字而导致的舍入误差问题(想想我们如何在以 10 为基数的数字系统中不四舍五入就不能写 1/3)。它会导致小的舍入错误,就像您在存储非基数 2 数字时看到的那样。

解决方案是使用整数或 bignum 库(我建议使用 GNU Multiple Precision library )。 bignumber 库使用整数来准确存储任意精度数字。

关于c++ - 浮点常量值不同,具体取决于它的声明方式 C++ (Xcode IDE),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8365387/

相关文章:

c++ - 如何清除 SDL_Surface 以替换为另一个 SDL_Surface?

c++ - 如何检测函数是否存在?

c++ - 二叉树可视化 - 循环树? (QT)

c++ - 如何正确迭代 double

floating-point - float 是如何存储的?什么时候重要?

c++ - 将 MySQL 与 C++ 集成的简单解决方案?

Swift:如何通过运行 shell 命令重置模拟器

xcode - 使用 xcode 6 提交时出现错误 ITMS-9000 "Invalid Image Path"

ios - 使用UIRefreshControl刷新tableview

c++ - SPEC CPU 基准测试中各种浮点运算的百分比