1. 程式人生 > >round()函式在java和c/c++中的不同表現

round()函式在java和c/c++中的不同表現

首先,數學上負數四捨五入考慮的是絕對值四捨五入,然後加符號。
c/c++
round(-0.5)返回-1,round(-1.5)返回-2,是四捨五入沒錯,
用floor(-0.5+0.5)的話返回0。

而java
Math.round(-0.5)返回0,原因:小數可拆成整數和正小數,如-0.5=-1+0.5,-1.6=-2+0.4,1.5=1+0.5,將小數四捨五入,拿第一個說,0.5入為1,-1+1=0。

除對於-x.5之外,該函式表現相同。