BigDecimal的用法

来源:互联网 发布:微软数据库认证有用吗 编辑:程序博客网 时间:2024/06/08 18:04
@Testpublic void bigDecimalPrecision(){    System.out.println(new Double(0.07));//0.07    System.out.println(0.06);//0.06    System.out.println(0.06+0.01);//0.06999999999999999    System.out.println(0.07);//0.07    System.out.println(1.0-0.42);//0.5800000000000001    System.out.println(4.015*100);//401.49999999999994    System.out.println(303.1/1000);//0.30310000000000004    BigDecimal b1 = new BigDecimal(Double.toString(0.07));//0.07    BigDecimal b2 = new BigDecimal("0.07");//0.07    BigDecimal b3 = new BigDecimal(0.07);//0.070000000000000006661338147750939242541790008544921875    BigDecimal b4 = new BigDecimal(Double.valueOf(0.07));//0.070000000000000006661338147750939242541790008544921875    BigDecimal b5 = new BigDecimal(Double.valueOf("0.07"));//0.070000000000000006661338147750939242541790008544921875    System.out.println(b1);    System.out.println(b2);    System.out.println(b3);    System.out.println(b4);    System.out.println(b5);    System.out.println("___________________________________");    BigDecimal b6 = new BigDecimal(0.58);    BigDecimal b7 = new BigDecimal(100L);    System.out.println(b6.multiply(b7).toString());    System.out.println(b6.multiply(b7).toPlainString());    System.out.println("___________________________________");    BigDecimal a = new BigDecimal(0.58);//a: 0.57999999999999996003197111349436454474925994873046875    BigDecimal b = new BigDecimal(0.580);//b: 0.57999999999999996003197111349436454474925994873046875    BigDecimal c = new BigDecimal("0.58");//0.58    BigDecimal d = new BigDecimal("0.580");//0.580    BigDecimal e = BigDecimal.valueOf(0.58);//0.58    BigDecimal f = BigDecimal.valueOf(0.580);//0.58    System.out.println("a: "+a);    System.out.println("b: "+b);    System.out.println("c: "+c);    System.out.println("d: "+d);    System.out.println("e: "+e);    System.out.println("f: "+f);    System.out.println(a.equals(b));//true    System.out.println(a.compareTo(b));//0    System.out.println(c.equals(d));//false    System.out.println(c.compareTo(d));//0    System.out.println(e.equals(f));//true    System.out.println(e.compareTo(f));//0    System.out.println(a.equals(c));//false    System.out.println(a.compareTo(c));//-1    System.out.println(b.equals(d));//false    System.out.println(b.compareTo(d));//-1    System.out.println(c.equals(e));//true    System.out.println(c.compareTo(e));//0    //toString()默认,科学计数法    System.out.println(BigDecimal.valueOf(0.0000000058).toString());//5.8E-8    System.out.println(BigDecimal.valueOf(0.0000000058).toPlainString());//0.000000058}

0 0
原创粉丝点击