保留几位小数 并 四舍五入 思路
作者:
啦啦啦123
,
2021-05-01 19:15:12
,
所有人可见
,
阅读 1376
四舍五入问题
比如:保留一位小数(并且需要四舍五入的话)
printf("%.1f\n",1.441); ----->这个答案是1.4
printf("%.1f\n",1.451); ----->这个答案是1.5
printf("%.1f\n",1.45); ----->这个答案是1.4
printf("%.1f\n",1.55)); ----->这个答案是1.6
printf("%._f",)的修约规则是四舍六入五成双规则:
(1)被修约的数字小于5时,该数字舍去;
(2)被修约的数字大于5时,则进位;
(3)被修约的数字等于5时,要看5前面的数字,若是奇数则进位,若是偶数则将5舍掉,即修约后末尾数字都成为偶数;若5的后面还有不为“0”的任何数,则此时无论5的前面是奇数还是偶数,均应进位。
四舍五入思路
需要保留几位小数,就先乘以多少倍,使得这个最后一个小数位变为整数位的最后一个。
然后在加上0.5以后。(取int)截去小数部分
然后在除以多少倍(与乘以的倍数相同)。
得到的就是答案了。
举例:如保留一位小数
数值为
1.44
1.45
1.451
1、先将保留的小数位乘一个倍数变为整数最后一位(保留一位小数,所以乘以10)
1.44 -----> 14.4
1.45 -----> 14.5
1.451 -----> 14.51
2、都加上0.5
1.44 -----> 14.4 -----> 14.9
1.45 -----> 14.5 -----> 15.0
1.451 -----> 14.51 -----> 15.01
3、取int
1.44 -----> 14.4 -----> 14.9 -----> 14
1.45 -----> 14.5 -----> 15.0 -----> 15
1.451 -----> 14.51 -----> 15.01 -----> 15
4.最后除回去
1.44 -----> 14.4 -----> 14.9 -----> 14 -----> 1.4
1.45 -----> 14.5 -----> 15.0 -----> 15 -----> 1.5
1.451 -----> 14.51 -----> 15.01 -----> 15 -----> 1.5
printf用到的是四舍六入,可以了解一下
原来如此。万分感谢。
不用客气,我也是偶然发现的,当时也是在做四舍五入,没有想到用加法解决