【发布时间】:2017-10-15 08:46:19
【问题描述】:
我正在尝试打印 Cpp 中的平均值,直到 float num 的小数点后 2 位。 avg 是 float,sum 是 float,count 是 int。
目前,如果我有 10/1,例如它输出 10.00。我希望输出只有 10。例如,如果 avg 获得值 3.1467665,它应该显示为 3.14。
avg = sum/count;
std::cout << std::fixed << std::setprecision(2) << avg;
四舍五入应该仅用于输出。 avg 不用改,如果方便的话,可以改一下值。
寻找使用c++11之前的标准的解决方案。
UPD:当我希望输出为 27.5 时,输出为 27.50。
【问题讨论】:
-
更新显着改变了问题。它不再要求 "rounding",而是要求 "truncation"。当然,这仍然算作四舍五入(趋向零或负无穷大),但当人们孤立地看到 “四舍五入” 一词时,这并不是人们通常所期望的。更正:不是更新改变了问题。截断要求从一开始就存在。提议的答案没有解决这个问题。当与
3.1467665运行时,它将产生3.15。
标签: c++ floating-point output rounding precision