@Test public 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 }
BigDecimal的用法
最新推荐文章于 2022-02-21 11:08:13 发布