全部问题 > 当前问题

对于四舍五入及小数点问题不太懂

t=(h*1000+5)/10;

答案中这条语句可以对数字四舍五入,但是没太看懂额。。。

 return (float)t/100;  /*除以100,保留2位小数*/ 也没太看懂。。。

鸣酱♪ 2015-9-14 15:02:09

共 2 个回答

嘿嘿大人 2015-9-14 15:06:18

就是将小数保留位及其后一位转换为整数,加上一个5如果保留位后面的数大于或等于5就会进位,反之就不进位,然后再除以10,将保留位后一位去掉,然后重新除以1000,变为原来的小数,进行返回

最佳答案

祁老师 2015-9-14 15:07:12

比如保留2位小数四舍五入 那么我们就需要对第三位小数进行判断 如果是大于等于5 那么我们就需要进位  否则就舍去 

所以我们先扩大1000倍+5  就是对第三位小数进行判断 如果是大于等于5 此时我们这个数十位上就会进位 然后除以10 就把最后一位去掉了  最后再除以100 缩小100倍 就四舍五入了