一个 是25.895,一个是20.00
2个金额相减想得到 5.90元,不想得到5.89各位怎么弄 谢谢了
BigDecimal b1 = new BigDecimal(25.895 -20.00).setScale(2,BigDecimal.ROUND_HALF_UP);
System.out.println(b1.doubleValue());
2个金额相减想得到 5.90元,不想得到5.89各位怎么弄 谢谢了
BigDecimal b1 = new BigDecimal(25.895 -20.00).setScale(2,BigDecimal.ROUND_HALF_UP);
System.out.println(b1.doubleValue());
解决方案 »
- Java Swing怎么给JTree加复选框?
- 如何写出不以ABC开头的正则表达式?(不用求反功能)
- sqlserver 2000 打sp3或sp4 提示:move data process:-145
- 请问main方法问题?
- 两周到四个角可以放200分了吧 ?? 呵呵,高兴,散分。。。。。。。。。
- 使用内存数据库保存数据库信息应该让内存为多大较合适
- 谁能告诉我哪有Jbuilder9版本的下载阿,我将重谢
- 新手,问个非常菜的问题,还望给指引一下。
- 用java打印出数组中不同的元素,比如int[] a=new[]{2,4,5,6,3}和int[] b=new[]{1,4,8,6,9}哪位大侠能帮我!急!
- JAVA泛型疑惑
- 随机存取1000个0到9的数,从中找出12345第一次连续出现的位置
- 简单的问题你会怎么写?
BigDecimal b1 = new BigDecimal(25.895 - 20.00+"").setScale(2,
BigDecimal.ROUND_HALF_UP);
System.out.println(b1.doubleValue());这样也可以,不知道为什么。
问题在当你用BigDecimal(double)构造方法时,double本身是不精确的
用BigDecimal(String)则肯定是精确的
如这样就不会有问题:
BigDecimal b1 = new BigDecimal("5.895").setScale(2,BigDecimal.ROUND_HALF_UP);