今天看到了处理大数据的bigDecimal类,试了一下,结果出现了小问题:
BigDecimal s1=new BigDecimal(1.9);
BigDecimal s2=new BigDecimal(0.3);
System.out.println("s="+ s1.add(s2));
输出结果为s=2.199999999999999900079927783735911361873149871826171875
查看API找到如下方法:
System.out.println("s="+ s1.add(s2,new MathContext(2)));
但是MathContext(2)只是确定保留的为2位有效数字,如果
BigDecimal s1=new BigDecimal(221.9);
BigDecimal s2=new BigDecimal(0.3);
System.out.println("s="+ s1.add(s2,new MathContext(2)));
输出结果为s=2.2E+2。很郁闷,求大神解决保留小数问题 |