在做PAT的有些题的过程中,我发现某些数据需要先保留到几位小数(不是输出的时候的那个格式控制)
我们先介绍一下三个函数,这三个函数都是包含在"math.h"
可以发现,我们最需要的应该是round()这个函数,举个栗子,要求3.785这个数保留2位小数,可以写成round(3.785*100)/100,要求3.68763这个数保留三位小数,可以写成round(3.68763*1000)/1000
但是,但是,我发现PAT里的编译器不支持round这个函数,因为这个函数是C99标准里的。因此我们还是得用前两个函数,效果是一样的。
round(3.785*100)/100=floor(3.785*100+0.5)/100=ceil(3.785*100-0.5)/100
结论:数字a四舍五入保留n位小数就是
floor(a*(10^n)+0.5)/(10^n)或者ceil(a*(10^n)-0.5)/(10^n)