繁体   English   中英

比float或double更准确的数据类型? C ++

[英]A more accurate data type than float or double? C++

C ++的数据类型是否比float或double更为准确,还是我只需要对我的计算将不正确这一事实感到满意?

编辑:正如李斯特先生所指出的,我的问题是关于精度。 当您将两个浮点数/双精度数相加在一起时,与手工计算相比,该数字减少了一半的时间,这有点令人沮丧。

在某些编译器和某些体系结构中,“ long double”将给您比double更高的精度。 如果在x86平台上,则x87 FPU具有“扩展的” 80位浮点格式。 当您使用“ long double”类型时,Gcc和Borland编译器会为您提供80位浮点值。 请注意, Visual Studio不支持此功能 (MSVC支持的最大值是64位双精度)。

有一种叫做“ double double ”的东西,它是一种用于实现四精度128位浮点的软件技术。 您可以找到实现它的库。

您也可以研究库中的任意精度算术

对于某些计算,64位整数比64位浮点值更好。

但是,如果您的问题是关于通用平台上当前C ++编译器中的内置类型的,那么答案是您被限制为double(64位浮点数),而在64位平台上则具有64位int。 如果您可以坚持使用x86并使用正确的编译器,那么您还可以拥有较长的double(80位扩展精度)。

您可能对此问题感兴趣:

long double(特定于GCC)和__float128

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM