c++ - long double 中精度不工作或 devcpp 失败

标签 c++ precision double-precision

我用过这个:

  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/

相关文章:

c++ - 如何将不同的对象存储在一个数组中,并得到某个类型的对象?

c++ - Qt Web 引擎获取历史记录

.net - 如何使用硬件加速将 .NET 中的 Half 转换为 Single?

c++ - Matlab 和 c++ 矩阵乘积 : same input, 不同的输出

Java float 比 double 更精确?

c++ boost::thread 在主线程上执行代码?

c++ - 引用成员函数

postgresql - 迄今为止的 Postgres double

c++ - 从顶点到片段着色器的平滑64位输入- “error C7570: 64 bit input should be flat”

c++ - 处理两个彼此接近的 double 相减时的精度损失