我希望声明一个浮点变量,它可以存储比更常见的双精度和长双精度更高的有效数字,最好是类似八进制(256位),(我相信)可能会给出大约70位有效数字。
如何声明这样的变量?跨平台兼容性是一个问题(与固定宽度整数相反)?
非常感谢任何帮助。
答案 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 的库,它实现了一个多词系统,允许它处理很多更大的数字。