欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

BigDecimal使用

程序员文章站 2022-05-06 08:47:19
...

为什么需要BigDecimal

public class Test {

    public static void main(String[] args) {
        float a=1.5f-0.3f;
        float b=1.3f-0.1f;
        System.out.println(a);
        System.out.println(b);
        System.out.println(a==b);
        //由于浮点经度丢失的问题
        /* 
        1.2
        1.1999999
        false
        */
	    //为防止精度丢失,使用new BigDecimal(String str)来传递
        BigDecimal a1 =new BigDecimal("1.5");
        BigDecimal b1 =new BigDecimal("0.3");
        BigDecimal c1 =new BigDecimal("1.3");
        BigDecimal d1 =new BigDecimal("0.1");

        BigDecimal x=a1.subtract(b1);
        BigDecimal y=c1.subtract(d1);
        System.out.println(x);
        System.out.println(y);
        System.out.println(x.equals(y));
        /* 
        1.2
        1.2
        true
        */


    }
}

常用使用方式

  • 比较 使用compareTo()方法
BigDecimal a = new BigDecimal("1.0");
BigDecimal b = new BigDecimal("0.9");
System.out.println(a.compareTo(b));// 
  • 保留小数
BigDecimal m = new BigDecimal("1.255433");
BigDecimal n = m.setScale(3,BigDecimal.ROUND_HALF_DOWN);
System.out.println(n);// 1.255
相关标签: 每天一道面试题