黑马程序员技术交流社区

标题: 关于BigDecimal的add()方法保留小树的问题 [打印本页]

作者: 青出于蓝    时间: 2013-12-23 23:25
标题: 关于BigDecimal的add()方法保留小树的问题
今天看到了处理大数据的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。很郁闷,求大神解决保留小数问题
作者: 为我想要的去努    时间: 2013-12-23 23:42
lz可以这样干:
四舍五入保留两位小数
   System.out.println("四舍五入取整:s="
     + s.setScale(2, BigDecimal.ROUND_HALF_UP));




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2