Code ::在Windows中以固定精度阻止printf double

时间:2017-12-24 22:36:45

标签: c++ printf double codeblocks precision

我在两个不同的操作系统上构建并运行以下代码:

#include <bits/stdc++.h>
using namespace std;

int main(){

    double d=1.123456;
    printf("%.5lf ",d);
    cout<<fixed<<setprecision(5)<<d;

    return 0;
}

代码:: Ubuntu中的块输出:1.12346 1.12346(如预期的那样)

Code :: Windows输出中的块:0.00000 1.12346(为什么0.00000 !!!)

1 个答案:

答案 0 :(得分:1)

对于printf调用,你表明你传递了一个long double(带有'lf'),但是只传递了一个double,它在ubuntu上工作的事实是一个意外而不是表明它是正确的。

如果你使用%.5f而不是%.5lf它应该适用于两种情况。