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

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

本文关键字:数据类型 C++ float double      更新时间:2023-10-16

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