x=(int)(x*100+0.5)/100.0;x是float型为什么能将x中的数值保留到小数点后两位,并将第三位四舍五入?

来源:百度知道 编辑:UC知道 时间:2024/06/25 18:35:18
谢谢了!

x*100把小数点后第三位移到小数点后第一位了,这一位的数字我们叫a
如果a>=5,加上0.5之后就进位了;如果a<5,就不会进位
强制转换成int,去掉小数部分
再除以100,把a的位置移回去。
这样四舍五入就完成了。
3.44678->344.678->345.178->345->3.45
3.44178->344.178->344.678->344->3.44

可能是这样的啊,本来x是可以保留6位的,但是x乘了100此后,为了使保持一致,他必须向保留到小数点后两位,我可能说的不太清楚,如果你要弄懂它,我建议你去找一个教c语言的老师或者去看参考书。不过我发现你还是很细心的,这么细致的问题都发现了,真让人佩服。