在C ++中声明一个八元组精度浮点变量

时间:2017-09-04 13:48:43

标签: c++ floating-point precision

我希望声明一个浮点变量,它可以存储比更常见的双精度和长双精度更高的有效数字,最好是类似八进制(256位),(我相信)可能会给出大约70位有效数字。

如何声明这样的变量?跨平台兼容性是一个问题(与固定宽度整数相反)?

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:5)

C ++标准要求精确到double;并且该浮点方案的更精细细节留给了实现。

IEEE754四倍精度long double只会给你36个有效数字。在撰写本文时,我从未遇到过实现 octuple precision 的系统。

您最好的选择是使用类似GNU Multiple Precision Arithmetic Library的内容,或者,如果您真的需要二进制浮点数The GNU Multiple Precision Floating Point Reliable Library

答案 1 :(得分:0)

虽然我不知道有任何 C++ 库完全实现了正确的 IEEE754 八元精度,但我发现了一个名为 ttmath 的库,它实现了一个多词系统,允许它处理很多更大的数字。