直接用我的代码和结果描述一下问题吧:
代码:
/ * Created by zhangx-ae on 2016/5/17. */ public class DemoTest {
public static void main(String[] args) { BigDecimal a = new BigDecimal(); BigDecimal b = a.multiply(new BigDecimal(0.21)); System.out.println(b); } }
结果:
.
我想要的结果是.00,应该如何处理结果呢?
实际上这是BigDecimal将double转化为Bigdecimal时出的问题,这是因为0.21不能够精确的表示double值,使用BigDecimal将double转化为精确值的时候所得的结果就会是0.,所以相乘以后结果会是那个样子。
将String转为BigDecimal的时候,字符串是多少,结果就是多少,因此想要将double类型的数据转为BigDecimal的时候,这样做也许才是你想要的结果:
BigDecimal b = new BigDecimal(String.valueOf(0.21));
结果:
.00
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/204664.html原文链接:https://javaforall.net
