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

  • 9146
  • 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] 四捨五入


或許您會對下列培訓課程感興趣:

  1. 2020/09/26(六)~2020/09/27(日):演化式設計:測試驅動開發與持續重構(台北)
  2. 2020/11/07(六):【針對遺留代碼加入單元測試的藝術】(台北)
  3. 2020/11/08(日):【極速開發+】(台北)

想收到第一手公開培訓課程資訊,或想詢問企業內訓、顧問、教練、諮詢服務的,請洽 Facebook 粉絲專頁:91敏捷開發之路