用於精確計算的BigDecimal

float和double類型主要爲了科學計算和工程計算而設計。

它們執行二進制浮點運算,提供較爲精確的快速近似計算。

float和double尤其不適用於貨幣計算。


解決辦法:使用BigDecimal、int或long進行貨幣計算

使用int或者long時,以分位單位進行計算,而不是以元爲單位。


BigDecimal:

    構造器

         BigDecimal(int)

        BigDecimal(double) 

        BigDecimal(long)

        BigDecimal(String)

    常用方法:

        public BigDecimal add(BigDecimal augend)                              加法

        public BigDecimal subtract(BigDecimal subtrahend)                  減法

        public BigDecimal multiply(BigDecimal multiplicand)             乘法

        public BigDecimal divide(BigDecimal divisor)                         除法

        public BigDecimal setScale(int arg0,RoundingMode arg1)     設置小數


RoundingMode:

        ROUND_UP                                 截斷位之後非0進位,如4.01保留一位小數得到4.1

        ROUND_DOWN                          直接截斷,如4.07保留一位小數得到4.0

        ROUND_FLOOR                          負數作ROUND_UP,正數作ROUND_DOWN

        ROUND_GEILING                        負數作ROUND_DOWN,正數作ROUND_UP

        ROUND_HALF_UP                       標準四捨五入,如4.55保留一位小數得到4.6

        ROUND_HALF_DOWN                 五舍大於五入,如4.55保留一位小數得4.5,4.55001保留一位小數得4.6


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章