C++中long double的精度是多少?

Bil*_*ard 24 c++ precision long-double

有谁知道如何找出long double特定平台的精度?在17位十进制数后,我似乎失去了精度,这与我刚刚使用时相同double.我希望得到更多,因为double我的平台上有8个字节,而long double12个字节.

之前你问,这是项目欧拉,所以是的,我需要超过17位.:)

编辑:谢谢你的快速回复.我刚刚确认通过long double在我的系统上使用我只能获得18位小数.

Joh*_*itb 34

你可以找到std::numeric_limits:

#include <iostream>     // std::cout
#include <limits>       // std::numeric_limits
int main(){
    std::cout << std::numeric_limits<long double>::digits10 << std::endl;
}
Run Code Online (Sandbox Code Playgroud)

  • 在x86上,它往往是80位扩展格式:64位尾数,15位指数,可能大约是18个圆形安全数字.Double是53bit尾数或16个圆形安全数字. (5认同)
  • 它告诉你精度。即您可以在双精度数中有多少位数。min() 和 max() 告诉你极限 (2认同)