gpt4 book ai didi

c++错误表示数字适合 double

转载 作者:行者123 更新时间:2023-11-28 02:54:28 28 4
gpt4 key购买 nike

看看这个片段:

#include <iostream>
#include <cstdio>
using namespace std;
int main()
{
//double a = 15670.1;
//a += 110420;
double a = 1.1;
a += 110420;
printf("%f\n",a);
cout << a << endl;
a = 1.1;
a += 11042;
printf("%f\n",a);
cout << a << endl;
}

结果是:

110421.100000
110421
11043.100000
11043.1

看起来 printf 工作正常,但第一个测试用例中的 cout 有什么问题?它省略了 0.1,为什么这个 ( cout ) 在第二个测试用例中是正确的?

最佳答案

默认情况下,C++ 流将浮点值格式化为 6 位有效数字,而 printf , 与 %f , 将它们格式化为小数点后 6 位。

您可以使用 std::setprecision (在 <iomanip> 中声明)以指定更高的精度:

cout << setprecision(7) << a << endl; // 110421.1

关于c++错误表示数字适合 double ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22308393/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com