Java--BigDecimal类解决数字丢失问题

import java.math.BigDecimal;

/*
 * 需求:解决float类型存储误差问题
 * 
 * 由于在运算的时候,float类型和double很容易丢失精度,演示案例.所以,为了能精确的表示,计算浮点数,Java提供了BigDecima
 * 
 * BigDecimal类概述:不可变的,任意精度的有符号十进制数,用于解决数字丢失问题
 * 
 */
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("-------------------");
        //参数1:要除以的值
        //参数2:要返回的标度(就是保留几位小数)
        //参数3: 要应用的舍入模式
        System.out.println("divide:\t"+bd7.divide(bd8, 3, BigDecimal.ROUND_HALF_UP));
        
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容