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

C++ C++;:如何设置函数返回值的精度?,c++,c++11,C++,C++11,我试图创建一个返回值四舍五入到小数点后第四位的双方差()。 例如,如果结果为5.2992124,则返回5.2992,如果结果为8.991382,则返回8.9914 我知道有cout这取决于你需要这个做什么。要求方差值四舍五入到一些有效数字似乎不常见。在任何情况下,您都可以将双精度四舍五入,如下所示: double rounded = 1e-4 * std::round(1e4 * value); 它乘以10000并舍入为整数,然后除以10000。一个简单的方法是首先将值转换为整数。 您可以使用

我试图创建一个返回值四舍五入到小数点后第四位的
双方差()。
例如,如果结果为
5.2992124
,则返回
5.2992
,如果结果为
8.991382
,则返回
8.9914


我知道有
cout这取决于你需要这个做什么。要求方差值四舍五入到一些有效数字似乎不常见。在任何情况下,您都可以将
双精度
四舍五入,如下所示:

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

它乘以10000并舍入为整数,然后除以10000。

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

pow(base, exponent)
在您的示例中:5.2992124

(无符号整数)5.2992124*pow(10,4)

这将产生值52992.124,该值在截断后变为52992。 然后,你可以再次将它转换成一个双精度,用pow(10,4)除以它,你就得到了它:5.2992