我用过这个:
long double f =79228162514264337593543950336.0;//maximum ; 2 ^ 96 because f is 12 bytes
cout.precision(30);
cout<<f;
但有些数字会出错。为什么?
最佳答案
您的实现提供了多大的 long double(或者,等效地,它为 LDBL_DIGITS 显示了什么值)?它通常是一个 80 位类型,有大约 20 个有效(十进制)数字。请特别注意,浮点类型将分为尾数(尾数)和指数,因此如果它总共为 12 个字节,它不会有 12 位尾数,因此您可以'期望看到 12 个字节的精度。
关于c++ - long double 中精度不工作或 devcpp 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8016290/