gpt4 book ai didi

c++ - 四舍五入到最大 N 位小数

转载 作者:行者123 更新时间:2023-11-30 02:46:41 26 4
gpt4 key购买 nike

我知道如何像这样将四舍五入的数字打印成 N 位小数:

using namespace std;

cout << setprecision(N) << fixed;
float k = 1.23441;
cout << k;

让我们以 N = 2 为例。

这将输出 1.23,这很好,但是如果 k 是 1.0012,它将输出 1.00,我希望它输出 1。如果 k 是 1.1045,它将输出 1.10,我希望它输出 1.1,所以我想四舍五入到 2 位小数并删除不必要的零。

我该怎么做?

最佳答案

其实问题不在于setprecision,而是fixed。使用 fixed,您明确要求拥有固定数量的数字!

如果您使用 setprecision 而不使用 fixed,它将完全按照您的要求执行:

#include <iostream>
#include <iomanip>

int main() {
double const number = 123.456789;
for (int i = 0; i != 15; ++i) { std::cout << i << ": " << std::setprecision(i) << number << "\n"; }
return 0;
}

output :

0: 1e+02
1: 1e+02
2: 1.2e+02
3: 123
4: 123.5
5: 123.46
6: 123.457
7: 123.4568
8: 123.45679
9: 123.456789
10: 123.456789
11: 123.456789
12: 123.456789
13: 123.456789
14: 123.456789

您可以找到关于不同模式 here 的文档:

  • 已修复
  • 科学
  • hexfloat
  • 默认 float

而你想要的是defaultfloat,顾名思义就是默认值。

关于c++ - 四舍五入到最大 N 位小数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23370517/

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