C ++:如何为函数的返回值设置精度?

时间:2019-03-17 21:02:48

标签: c++ c++11

我正在尝试使用返回值四舍五入到小数点后第四位的double Variance()函数。 例如,如果结果为5.2992124,则返回5.2992,如果结果为8.9914,则返回8.991382

我知道有cout << setprecision(~)printf("%.4d, ~"),但是我不确定如何在我的情况下利用它。

谢谢。

2 个答案:

答案 0 :(得分:1)

这取决于您需要什么。要求方差值四舍五入到一些有效数字似乎很不寻常。无论如何,您都可以按如下所示舍入double

double rounded = 1e-4 * std::round(1e4 * value);

乘以10000,四舍五入为整数,然后除以10000。

答案 1 :(得分:1)

一种简单的方法是首先将值转换为整数。 您可以使用标头cmath中定义的c ++的pow()函数:

pow(base, exponent)

在您的示例中:5.2992124。

(unsigned int)5.2992124 * pow(10,4)。

这将产生值52992.124,该值在截断后变为52992。 然后,您可以再次使用pow(10,4)除以将其转换为双精度,然后将其转换为:5.2992。