C++的数据类型是否比浮动或双数据更精确,或者我只需要满足于这样一个事实:我的计算将被取消?
编辑:正如李斯特先生所指出的,我的问题是关于精确度。当你把两个浮标/双倍相加在一起时,这个数字比手工计算少了一半,这有点令人沮丧。
发布于 2013-08-10 07:46:35
在某些编译器中,以及在某些体系结构中,“长双”将提供比双倍更高的精度。如果您在x86平台上,则x87 FPU具有“扩展”80位浮点格式。Gcc和Borland编译器在使用“长双”类型时给出了一个80位浮点数。注意,Visual不支持这一点。 ( MSVC支持的最大精度是双精度,64位)。
有一种叫做"双倍“的软件技术,用于实现四精度128位浮点。您可以找到实现它的库。
您还可以调查任意精度算法的库。
对于某些计算,64位整数比64位浮点值是更好的选择。
但是,如果您的问题是关于当前通用平台上的C++编译器中的内置类型,那么答案是您仅限于双(64位浮点),而在64位平台上则有64位ints。如果您可以坚持使用x86并使用正确的编译器,您也可以拥有长双(80位扩展精度)。
你可能对这个问题感兴趣:
https://stackoverflow.com/questions/18159326
复制相似问题