C语言将一个小数四舍五入的问题

问题描述:

C语言将一个小数四舍五入的问题
比如将55.3351保留2位小数,第三位四舍五入,可以用
a=(a*100+0.5)/100.0或a=(int)(a*100+0.5)/100.0,我的问题是,两个都行吗?有什么区别,我做过实验,貌似没什么区别……
1个回答 分类:综合 2014-09-19

问题解答:

我来补答
有差别,第一个不会做四舍五入的,它精确的进行了计算,第二个是正确的,进行了舍运算,这个运算是在(int)的时候利用类型转换做的
如果你输出的结果是一样的,我怀疑是你在输出的时候指定了输出精度,你检查一下你的printf或者cout
再问: 看来加上(int)是对的。还有个疑问,加上.2后,为什么输出的c是55.34,进行了四舍五入?
再答: 没太看懂你的意思,她这里加0.5的目的是,如果原数字存在小数部分,则取舍后必然整数+1.
 
 
展开全文阅读
剩余:2000
下一页:例6求步骤