使用JavaScript開發,當四捨五入遇到負數時,遇到中間數的進位,是數值變大?還是數值變小?
Math.round()與toFixed()的差異。
四捨五入的需求,相信大家寫程式都遇過,
也相信大家都知道,1.5四捨五入到整數位,結果為2。
但是當四捨五入遇到負數時,五入的定義究竟為何,就有兩種版本了。
-1.5的四捨五入,究竟是-1還是-2?
使用Math.round()與toFiexed()的比較。
var Num, NumRound , NumtoFixed ;
Num=-1.5;
NumRound=Math.round(Num);
//NumRound值為-1
NumtoFixed =Num.toFixed(0);
//NumtoFixed值為-2
Num=-1.5;
NumRound=Math.round(Num);
//NumRound值為-1
NumtoFixed =Num.toFixed(0);
//NumtoFixed值為-2
兩個函數回傳值是不同的,按照一般的通則,應該是要回傳-2,所以請視需求來使用。
PS: Math.round只適用在四捨五入整數位,所以如果要限定四捨五入位數,需使用10的指數運算來達到shift小數點。
2009/02/23補充:
[C#][VB.NET][VB6][JAVA] 四捨五入
blog 與課程更新內容,請前往新站位置:http://tdd.best/