Java--BigDecimal類解決數(shù)字丟失問題

import java.math.BigDecimal;

/*
 * 需求:解決float類型存儲誤差問題
 * 
 * 由于在運(yùn)算的時(shí)候,float類型和double很容易丟失精度,演示案例.所以,為了能精確的表示,計(jì)算浮點(diǎn)數(shù),Java提供了BigDecima
 * 
 * BigDecimal類概述:不可變的,任意精度的有符號十進(jìn)制數(shù),用于解決數(shù)字丟失問題
 * 
 */
public class BigDecimalDemo {

    public static void main(String[] args) {
        BigDecimal bd1 = new BigDecimal("0.09");
        BigDecimal bd2 = new BigDecimal("0.01");
        System.out.println("add:\t"+bd1.add(bd2));
        System.out.println("-------------------");
        
        BigDecimal bd3 = new BigDecimal("1.0");
        BigDecimal bd4 = new BigDecimal("0.32");
        System.out.println("subtract:\t"+bd3.subtract(bd4));
        System.out.println("-------------------");
        
        BigDecimal bd5 = new BigDecimal("1.015");
        BigDecimal db6 = new BigDecimal("100");
        System.out.println("multiply:\t"+bd5.multiply(db6));
        System.out.println("-------------------");
        
        BigDecimal bd7 = new BigDecimal("1.301");
        BigDecimal bd8 = new BigDecimal("100");
        System.out.println("divide:\t"+bd7.divide(bd8));
        System.out.println("-------------------");
        //參數(shù)1:要除以的值
        //參數(shù)2:要返回的標(biāo)度(就是保留幾位小數(shù))
        //參數(shù)3: 要應(yīng)用的舍入模式
        System.out.println("divide:\t"+bd7.divide(bd8, 3, BigDecimal.ROUND_HALF_UP));
        
    }
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容