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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Code ::在Windows中以固定精度阻止printf double相关的知识,希望对你有一定的参考价值。

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

#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 !!!)

答案

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

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

以上是关于Code ::在Windows中以固定精度阻止printf double的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Python 中以精确的精度打印双精度? [复制]

在 Visual Studio 中以字节数组形式将 64 位双精度转换为 80 位双精度

在 Mac OSX 中以编程方式阻止屏幕保护程序

如何阻止我的推送与我的公开 PR 合并?

在 Swift 中以浮点精度从 CMSampleBuffer 获取“CIAreaAverage”的 RGB 平均值

我可以在 python 中以百分比精度执行“字符串包含 X”吗?