#include <iostream>
#include <iomanip>
#include <limits>
using namespace std;
int main() {
const long double longDoublePI = 3.141592653589793238;
cout << setw(16) << "longDoublePI = " << setprecision(numeric_limits<long double>::digits10 + 1) << longDoublePI << endl;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
But the result output is:
longDoublePI = 3.141592653589793116
Why the answer is wrong?
因为,虽然longDoublePI是 a long double,但您初始化它的文字只是 adouble,它没有那么高的精度。
您可以改用它:
const long double longDoublePI = 3.141592653589793238L;
// ^
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
382 次 |
| 最近记录: |