将 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::coutfr)执行此转换,默认精度为 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;
}