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

  • 9190
  • 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. 2021/1/9:【針對遺留代碼加入單元測試的藝術】202101 - 台北
  2. 2021/1/10:【極速開發+】 202101 台北
  3. 2021/2/20~2021/2/21:【演化式設計】測試驅動開發與持續重構 202102

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