将 23.428 四舍五入为 23.4
Rounding 23.428 into 23.4
本文关键字:四舍五入 更新时间:2023-10-16
我需要将答案四舍五入 23.428 并得到 23.4。
我对此进行了一些搜索,我可能需要包含一个浮动的行,但我做到了,CODEBLOCKS给了我一个错误。
注意:文件信息.txt包含数字 7.5 305.5 4.09 4
我的代码是:
#include <iostream>
#include <fstream>
#include <cmath>
using namespace std;
int main()
{
float m, k, kk;
int n;
float s;
ifstream fd("Information.txt");
fd >> k >> m >> kk >> n;
k = k / 100;
m = m * k;
kk = kk * m;
s = kk / n;
/*s=((((k/100)*m)*kk)/n);*/
fd.close();
ofstream fr ("Rezults.txt");
fr << s;
fr.close();
return 0;
}
您可以将数字乘以 10,将其四舍五入,然后再次除以 10:
float x = 23.428;
x = std::round(10.0*x);
x /= 10.0;
浮
点值(即 float
s) 通常不存储在基数 10 中,但是当您显示它们的值时,它们会转换为基数 10,因为这是我们大多数人习惯的。输出流(示例中的std::cout
和fr
)执行此转换,默认精度为 6 位。要显示 3 位数字,只需更改精度:
#include <iostream>
#include <iomanip>
#include <fstream>
int main() {
float num = 23.428;
std::cout << std::setprecision(3) << num << 'n';
std::ofstream fr("Rezults.txt");
fr << std::setprecision(3) << num << 'n';
return 0;
}
相关文章:
- 在C++中,将大的无符号浮点数四舍五入为整数的最佳方法是什么
- 在除法中不需要四舍五入
- 使用 BMI 计算器对C++中的数字进行四舍五入的问题
- 为什么将双精度转换为 int 似乎在第 16 位数字之后将其四舍五入?
- 四舍五入C++
- 在数学上将浮点数四舍五入到 N 位小数
- 如何在C++中对OpenCV垫的小数进行四舍五入?
- 向下四舍五入到五个c++的最近倍数
- Systemc - 将sc_time四舍五入到最接近的第 10 SC_NS
- 如何获得 QColor::greenF 颜色值正好在 0 到 1 之间而不是四舍五入?
- 四舍五入平均值逐渐恶化
- 我的程序不断四舍五入到最接近的整数
- 如何在C或C 的小数点后两个位置后四舍五入
- 将正数四舍五入到下一个最接近的 5 倍数
- 找到printf的意外错误,该格式为0.1F,用于四舍五入数字
- 用于四舍五入的数学函数
- 避免双精度数字的四舍五入
- 有没有办法将数字作为字符串,并在不使用浮点数或双精度数的情况下将其四舍五入到确切的位数
- 叮叮当当不正确的四舍五入
- 浮点部门的软件实施,四舍五入问题