// 4舍6入5成双 modf+floor法
double get4s6r(double num){
if (num <= 0.0){
return 0.0;
}
double fraction, integer;
fraction = modf(num, &integer); // 隔开整数和小数
int fi = int(floor(fraction * 1000)); // 小数点后三位的整型表示
int third = fi % 10;
int second = fi % 100 / 10;
double res = integer + double(fi - third) * 0.001;
if (third < 5){
return res; //舍去
}
else if (third > 5){
return res + (double)1/100; //进位
}
else
{
if (second & 1){ //奇数
return res + (double)1/100;
}
else{
return res;
}
}
}常用需求系列——4舍6入5成双
最新推荐文章于 2024-05-16 17:06:34 发布
本文介绍了一种4舍6入5成双的浮点数取整方法,并通过具体的C语言代码实现了该算法。该算法适用于需要精确控制浮点数舍入规则的应用场景。
1977

被折叠的 条评论
为什么被折叠?



