C++ 四舍五入应该返回的双变量,与打印的变量相反
我正在编写一个平均值函数,它取数组的平均值,并返回小数点后2位的结果。然而,我在网上找到的唯一方法是使用C++ 四舍五入应该返回的双变量,与打印的变量相反,c++,double,rounding,C++,Double,Rounding,我正在编写一个平均值函数,它取数组的平均值,并返回小数点后2位的结果。然而,我在网上找到的唯一方法是使用printf()或cout() 但我不希望每次调用这个函数时都打印出来,因为它被用于其他函数中,比如方差方程和标准偏差方程,它们不应该显示平均函数 如果有人能告诉我这样做的方法,我将永远感激。我认为我的问题足够广泛,以至于不需要真正的代码,但在这里它只是以防万一。它只会持续好几个小数点。不确定这是一个精确的值还是一个分界点 double avg(int a[],int n) // comput
printf()
或cout()
但我不希望每次调用这个函数时都打印出来,因为它被用于其他函数中,比如方差方程和标准偏差方程,它们不应该显示平均函数
如果有人能告诉我这样做的方法,我将永远感激。我认为我的问题足够广泛,以至于不需要真正的代码,但在这里它只是以防万一。它只会持续好几个小数点。不确定这是一个精确的值还是一个分界点
double avg(int a[],int n) // compute the average of n data storing in the array a
{
double addsum = (double)sum(a,n)/(double)n;
return addsum;
}
您可以移动该值,截断它并将其移回 示例代码
由于浮点值始终是二进制的,所以您最好返回与您真正想要的十进制数最接近的二进制数。但这一过程相对容易
double round_two_places(double x)
{
return floor(x * 100.0 + 0.5) / 100.0;
}
提供与其参数最接近的整数。要模拟小数点后第三位的舍入,请使用std::round(addsum*100.0)/100.0
double avg(int a[],int n) // compute the average of n data storing in the array a
{
double addsum = (double)sum(a,n)/(double)n;
return std::round(addsum*100.0)/100.0;
}
使用头文件
math.h
中的ceil
函数,按以下方式四舍五入到两个小数点:
double avg(int a[], int n)
{
double addsum = (double) sum(a, n) / (double) n;
addsum = ceil(x * 100.0 - 0.5) / 100.0;
return addsum;
}
double avg(int a[],int n) // compute the average of n data storing in the array a
{
double addsum = (double)sum(a,n)/(double)n;
return std::round(addsum*100.0)/100.0;
}
double avg(int a[], int n)
{
double addsum = (double) sum(a, n) / (double) n;
addsum = ceil(x * 100.0 - 0.5) / 100.0;
return addsum;
}