[JavaScript]四捨五入遇到負數的問題

  • 10117
  • 0
  • 2009-02-23

使用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

兩個函數回傳值是不同的,按照一般的通則,應該是要回傳-2,所以請視需求來使用。

PS: Math.round只適用在四捨五入整數位,所以如果要限定四捨五入位數,需使用10的指數運算來達到shift小數點。


 2009/02/23補充:

[C#][VB.NET][VB6][JAVA] 四捨五入


blog 與課程更新內容,請前往新站位置:http://tdd.best/