gpt4 book ai didi

c++ - 正确格式化有错误的数字 (C++)

转载 作者:行者123 更新时间:2023-11-30 01:32:53 24 4
gpt4 key购买 nike

我有三组数字,一个测量值(在 0-1 范围内)两个错误(正负)。这些数字应与有效数字的数量一致地显示,四舍五入,对应于任一数字中的第一个非零条目。

如果测量是一个,则跳过此要求(即只需要考虑误差中的数字)。例如:

0.95637 (+0.00123, -0.02935) --> 0.96 +0.00 -0.03
1.00000 (+0.0, -0.0979) --> 1.0 +0.0 -0.1 (note had to truncate due to -ve error rounding up at first significant digit)

现在,通过取 log10(num) 很容易得到第一个非零数字,但我有一个愚蠢的时刻试图以一种干净的方式进行剥离和舍入。

所有数据类型都是 double 的,选择的语言是 C++。欢迎所有想法!

最佳答案

使用

cout.setf(ios::fixed, ios::floatfield);
cout.precision(2);

在你输出数字之前应该做你正在寻找的。

编辑:举个例子

double a = 0.95637;
double b = 0.00123;
double c = -0.02935;

cout.setf(ios::fixed, ios::floatfield);
cout.precision(2);
cout << a << endl;
cout << b << endl;
cout << c << endl;

将输出:

0.96
0.00
-0.03

进一步编辑:您显然必须调整精度以匹配您的有效数字。

关于c++ - 正确格式化有错误的数字 (C++),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/958374/

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