日期:2014-05-19  浏览次数:20731 次

请问个BigDecimal的原因、
代码一:

 
Java code
 BigDecimal b = new BigDecimal("12.355").setScale(2,BigDecimal.ROUND_UP);
    System.out.println(b.floatValue());


代码二:

 
Java code
 BigDecimal b = new BigDecimal("12.355");
    b.setScale(2,BigDecimal.ROUND_UP);
    System.out.println(b.floatValue());



代码都一样、只是分开来写了、请问结果是一样吗?为什么、



------解决方案--------------------
BigDecimal 的说明中,第一句话很重要:
Immutable, arbitrary-precision signed decimal numbers.

相信你已经当场恍然大悟了,哈哈~~~
------解决方案--------------------
BigDecimal 是不可变的、、、、
------解决方案--------------------
探讨
是因为 volatile transient 修饰的关系吧?