[英]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位扩展精度)。
您可能对此问题感兴趣:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.