java Math.round()比較特殊的四捨五入

來源:互聯網
上載者:User
java Math.round()比較特殊的四捨五入   public class MathTest {   
    public static void main(String[] args) {   
        System.out.println("小數點後第一位=5");   
        System.out.println("正數:Math.round(11.5)=" + Math.round(11.5));   
        System.out.println("負數:Math.round(-11.5)=" + Math.round(-11.5));   
        System.out.println();   
  
        System.out.println("小數點後第一位<5");   
        System.out.println("正數:Math.round(11.46)=" + Math.round(11.46));   
        System.out.println("負數:Math.round(-11.46)=" + Math.round(-11.46));   
        System.out.println();   
  
        System.out.println("小數點後第一位>5");   
        System.out.println("正數:Math.round(11.68)=" + Math.round(11.68));   
        System.out.println("負數:Math.round(-11.68)=" + Math.round(-11.68));   
    }   
}  

運行結果:

1、小數點後第一位=5
2、正數:Math.round(11.5)=12
3、負數:Math.round(-11.5)=-11
4、
5、小數點後第一位<5
6、正數:Math.round(11.46)=11
7、負數:Math.round(-11.46)=-11
8、
9、小數點後第一位>5
10、正數:Math.round(11.68)=12
11、負數:Math.round(-11.68)=-12

根據上面例子的運行結果,我們還可以按照如下方式總結,或許更加容易記憶:

1、參數的小數點後第一位<5,運算結果為參數整數部分。
2、參數的小數點後第一位>5,運算結果為參數整數部分絕對值+1,符號(即正負)不變。
3、參數的小數點後第一位=5,正數運算結果為整數部分+1,負數運算結果為整數部分。

 

終結:大於五全部加,等於五正數加,小於五全不加。

 

還有一個問題就是奇進偶舍的原則

今天客戶跑過來跟我說,我們程式裡面計算的價格不對,我檢查了一下,發現價格是經過折算後的價格,結果是可能小數位較多,而單據上只能列印兩位價格,所以就對價格調用Math.Round(price,2)函數進行四捨五入。

而出現問題的單價就是1.805,函數Math.Round(1.805,2)的傳回值卻是1.80,按照四捨五入的原則,結果應該是1.81才對。

在一番google之後,發現微軟是對了,是我們錯了。:(

原來四捨五入也有個國際慣例,叫奇進偶舍,意思是當舍入位前面一位是奇數時,就進,為偶數時,就舍,這也是體現公平性的原理。

可是國際慣例往往在國內很多企業行不通,為了應付他們的要求,採用Math.Round(price,2,MidpointRounding.AwayFromZero)就可以了。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.