import java.math.BigDecimal; public class Test { //浮点型回丢失精度 @org.junit.Test public void test(){ // 0.060000000000000005 System.out.println(0.05+0.01); // 0.5800000000000001 System.out.println(1.0-0.42); // 401.49999999999994 System.out.println(4.015*100); // 1.2329999999999999 System.out.println(123.3/100); } @org.junit.Test public void test2(){ BigDecimal b1 = new BigDecimal(0.05); BigDecimal b2 = new BigDecimal(0.01); // 0.06000000000000000298372437868010820238851010799407958984375 System.out.println(b1.add(b2)); } // 选择BigDecimal String类型 @org.junit.Test public void test3(){ BigDecimal b1 = new BigDecimal("0.05"); BigDecimal b2 = new BigDecimal("0.01"); // 0.06 加法 System.out.println(b1.add(b2)); // 0.0005 乘法 System.out.println(b1.multiply(b2)); // 0.04 减法 System.out.println(b1.subtract(b2)); // 5.00 四舍五入 保留2位小数 System.out.println(b1.divide(b2,2,BigDecimal.ROUND_HALF_UP)); } }
转载于:https://my.oschina.net/shanesen/blog/3017226