浮点常量值因C++声明方式而异(Xcode IDE)
Float constant value different depending upon how it's declared C++ (Xcode IDE)
我正在使用c++ Primer Plus,使用Xcode作为我的IDE,其中一个练习要求将值0.0254分配给符号常数(将英寸转换为米)。问题是,当我声明常量时,我得到的值是0.0253999997。我像下面这样声明这个常量。
#include <iostream>
const float METERS_PER_INCH = .0254;
这是由于浮点数在以2为基数的数字系统中存储数字而导致的舍入误差问题(想想我们如何在以10为基数的数字系统中不舍入就不能写出1/3)。它会导致小的舍入误差,就像您在存储非2进制数时看到的那样。
解决方案是使用整数或bignum库(我建议使用GNU多精度库)。大数字库使用整数精确地存储任意精度的数字。
别担心,你的mac没问题。
问题是计算机不能准确地表示浮点数和双精度数,所以这就是你在这里看到的。
为什么比较double和float会导致意想不到的结果?
http://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html浮点数与浮点文字
比较的奇怪输出Google是你的朋友!
相关文章:
- C++:如何在CLion IDE中安装Boost
- ld:bind_at_load和-bitcode_bundle(Xcode设置ENABLE_bitcode=YES)不能
- 在没有Xcode的情况下在Mac捆绑包中嵌入框架
- IDE (CLion) 无法解析C++模板类型
- Xcode 语义问题引用或以前定义的代码
- 使用 Xcode 将双精度存储在数组C++中
- Xcode 9.4.1 中的 Apple Mach-O 链接器 (id) 错误
- 各种版本的 Mac OSX 向后兼容性如何?(Xcode C++
- MacOS 上的 Xcode 11 项目不在一个函数中使用 sin 和 cos:未定义的符号"___sincosf_stret"
- macOS 是内置在 clang 编译器中还是内置于 xcode ide 中?
- 为什么联机C++ IDE 不支持"graphics.h"头文件?
- Qt - 从XCode上传到MacOS AppStore
- LLVM 3.8:使用AD IDE(XCODE)实现通行证
- 使用 Xcode 作为 C++ 代码的 IDE
- 为什么他的语法正确的程序不能在带有llvm编译器的Xcode IDE上编译?
- Xcode 6 的 Playground 功能适用于 Visual Studio 或其他使用 C++ 的 IDE?
- Xcode 5 C++SDL应用程序未在Xcode IDE外部加载
- 如何使用XCode IDE在SFML中通过相对路径加载图像
- 浮点常量值因C++声明方式而异(Xcode IDE)
- 在Xcode IDE中初始化我自己的c++类向量