c语言怎样舍弃小数点后面指定位数以后的数
我想舍去小数点后面指定位数。比如1.784,我想舍去小数点1位右面的。变成1.7注意,不是四舍五入.找了半天没找到适合的命令,请大神指点,有没有现成命令?如果没有能给贴个...
我想舍去小数点后面指定位数。比如1.784,我想舍去小数点1位右面的。变成1.7
注意,不是四舍五入.
找了半天没找到适合的命令,请大神指点,有没有现成命令?
如果没有能给贴个最简洁的函数方法。学习一下,谢了 展开
注意,不是四舍五入.
找了半天没找到适合的命令,请大神指点,有没有现成命令?
如果没有能给贴个最简洁的函数方法。学习一下,谢了 展开
2个回答
展开全部
Note1:
正数 x 四舍五入的技巧:
x --> (int)(x+0.5)
当 x=n+r, 0<=r<1,
若 0<=r<0.5, 则r+0.5<1, (int)(x+0.5)=(int)(n+r+0.5)=n
若 0.5<=r<1, 则1<= r+0.5, (int)(x+0.5)=(int)(n+r+0.5)=n+1
Note2:
举例来说: 若正数要依舍去法精确到小数点後第二位
x --> (int)(x*100)/100 就好.
例如 3.2794 --> (int)(327.94)/100=327/100=3.27
Note3:
举例来说: 若正数要四舍五入精确到小数点後第二位
x*100 四舍五入再除以100 就好
也就是 (int)(x*100+0.5)/100
正数 x 四舍五入的技巧:
x --> (int)(x+0.5)
当 x=n+r, 0<=r<1,
若 0<=r<0.5, 则r+0.5<1, (int)(x+0.5)=(int)(n+r+0.5)=n
若 0.5<=r<1, 则1<= r+0.5, (int)(x+0.5)=(int)(n+r+0.5)=n+1
Note2:
举例来说: 若正数要依舍去法精确到小数点後第二位
x --> (int)(x*100)/100 就好.
例如 3.2794 --> (int)(327.94)/100=327/100=3.27
Note3:
举例来说: 若正数要四舍五入精确到小数点後第二位
x*100 四舍五入再除以100 就好
也就是 (int)(x*100+0.5)/100
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询