使用变量作为long double来存储最大精度

时间:2015-11-29 12:37:45

标签: c++ precision

我将变量定义为long double以使用数字PI的最大精度,但是当程序被激活时,变量的值变为3.141592653589793116并且失去了一些精度。

我检查了变量的大小,它与double的大小相同,因此就像double一样。

我有存储此值的问题,而不是用于打印。现在,我如何以完全精确的方式使用long double

#include <iostream>
#include <iomanip>

using namespace std;

  int main() {
    //number PI
    long double pi = 3.14159265358979323846264338327950;

    int sz1 = sizeof(long double);
    int sz2 = sizeof(pi);

    cout << sz1 << endl;
    cout << sz2 << endl;
    printf_s("%.20f\n", pi);
    cout << setprecision(20) << pi; 
    return 0;
}

//结果:
8
8
3.141592653589793116
3.141592653589793116

0 个答案:

没有答案