Pal*_*han 10 c++ floating-point
以下片段输出0.29847,当我预期0.29848时:
double f = 0.298475;
cout << setprecision(5) << f << endl;
Run Code Online (Sandbox Code Playgroud)
但是,对于其他例子,我观察四舍五入:
double f = 0.123459;
cout << setprecision(5) << f << endl;
Run Code Online (Sandbox Code Playgroud)
输出:0.12346
和
double f = 0.123454;
cout << setprecision(5) << f << endl;
Run Code Online (Sandbox Code Playgroud)
输出:0.12345
Ker*_* SB 16
这个数字0.298475不能完全代表a double(因为它不是分母为2的幂的分数,为11939/40000),实际存储的数字实际上接近0.29847而不是0.29848.
| 归档时间: |
|
| 查看次数: |
8046 次 |
| 最近记录: |