如何使用与excel round function相同的数学轮函数
float round( float arg );
round(number, num_digits )
如果num_digits大于0,则将数字四舍五入到指定的小数位数。
如果num_digits为0,则将数字四舍五入为最接近的整数。
如果num_digits小于0,则该数字将四舍五入到小数点的左侧。
答案 0 :(得分:3)
简单算术,
#include <stdio.h>
#include <cmath>
float my_round( float arg, int digits )
{
float retValue = arg * pow(10.0f,(float)digits);
retValue = round(retValue);
return retValue * std::pow(10.0f,(float)-digits);
}
int main()
{
float value = 12.3456789f;
for(int i=-1;i<6;i++)
{
printf("%f\n", my_round(value, i));
}
}
应该做的伎俩,(用g ++编译)
输出是:
10.000000
12.000000
12.300000
12.349999
12.346001
12.345699
12.345679