c語言怎麼實現四捨五入?
給你個簡單的餓例子四捨五入小數點後一位float f=1.54536;f=(int)(f*10+5)/10.0;你分析看看就知道了[mw_shl_code=c,true]#includemain(){float f=1.54536;f=(int)(f*10+5)/10.0; printf("%f\n",f);}[/mw_shl_code]
最佳回答:
有必要熟悉下 c語言 運算優先級
圓括號> 類型轉換 > 乘除和取模 > 加減
即
() > (int) > * / > +
所以
f=(int)(f*10+5)/10.0
=(int)(1.54536*10+5)/10.0
=(int)(15.4536+5)/10.0
=(int)(20.4536)/10.0 //int 取整,就是捨去全部小數
=20/10.0
=2.000000 //默認 6位小數
其實,本人覺得,用以下的就可以實現了
f=(int)(f+0.5) // +0.5的意義就是讓 小數>=0.5的變成 +1,而<0.5的 不到1,將被捨去
-
補充:
-
比較完整的
c語言 運算優先級表:
http://www.slyar.com/blog/c-operator-priority.html