比float或double更准确的数据类型?C++
A more accurate data type than float or double? C++
C++的数据类型是否比float或double更准确,或者我只需要接受我的计算将被关闭的事实?
编辑:正如李斯特先生所指出的,我的问题是关于准确性。当你把两个浮点/双精度加在一起时,与手工计算相比,这个数字有一半的时间是错误的,这有点令人沮丧。
在某些编译器和某些体系结构中,"长双精度"将为您提供比双精度更高的精度。如果您在x86平台上,x87 FPU具有"扩展"的80位浮点格式。当您使用"长双精度"类型时,Gcc和Borland编译器会为您提供一个80位的浮点值。请注意,Visual Studio不支持此功能(MSVC支持的最大值为双精度,64位)。
有一种叫做"双精度"的东西,它是一种用于实现四精度128位浮点的软件技术。你可以找到实现它的库。
您还可以研究库中的任意精度算术。
对于某些计算,64位整数是比64位浮点值更好的选择。
但是,如果你的问题是关于通用平台上当前C++编译器中的内置类型,那么答案是你只能使用double(64位浮点),而在64位平台上你有64位int。如果你能坚持使用x86并使用正确的编译器,你也可以使用长双精度(80位扩展精度)。
你可能对这个问题感兴趣:
long double(GCC特定)和__float128
相关文章:
- 防止主数据类型C++的隐式转换
- 处理小于cpu数据总线的数据类型.(c++转换为机器代码)
- 在C++中打印指向不同基元数据类型的指针的内存地址
- C++浮点数据类型和字符串数据类型无法子到模板函数中
- 如何计算数据类型的范围,例如int
- C++中数据类型修饰符的顺序
- C++LinkedList问题.数据类型之间存在冲突?没有匹配的构造函数
- 特定数据类型的模板类
- 具有多个模板的模板函数,用于特定数据类型(如字符串)?
- 有没有办法提示用户使用哪种数据类型作为模板 c++
- int数据类型的指针指向的是什么,如果是一个类的私有数据成员,我们创建了该类的两个对象?
- 时间复杂度 当具有复合数据类型(如元组或对)时?
- 如何获取C++字符数据类型的地址
- 将复杂的非基元C++数据类型转换为 Erlang/Elixir 格式,以使用 NIF 导出方法
- 构造智能点数据类型以及普通数据类型的通用方法
- 如何使映射键具有两种不同的数据类型?
- 数据类型"struct seq<0, 1, 2>{}"含义是什么?
- 如何在不破坏现有应用程序的情况下更改 API 中 stl 容器的数据类型?
- Static_cast转换为错误的数据类型,但结果仍然正确?
- 使用 Boost.Spirit 解析具有混合数据类型的 OBJ 文件?