【发布时间】:2015-10-28 01:12:13
【问题描述】:
在 Java 中,new 来自另一个 bigDecimal.toString() 的 BigDecimal 是否总是等于? 例如
BigDecimal a = new BigDecimal("1.23");
BigDecimal b = new BigDecimal(a.toString());
System.out.println(a.compareTo(b) == 0); // always true?
我知道 BigDecimal 是不可变的,但我想知道 clone BigDecimal 对象是否有任何好方法?
【问题讨论】:
-
@CrakC 你能举一个浅拷贝的例子吗?
-
@andyf 我不这么认为。我无法保证返回一个新对象。
-
@andyf 我刚刚检查过,
BigDecimal.ZERO.add(BigDecimal.ZERO)没有返回新对象。 -
@SotiriosDelimanolis 是的,它不需要一个,因为它是不可变的
-
@PaulBoddington 谢谢。是的
BigDecimal.ZERO.add(BigDecimal.ZERO)不返回新对象。可能是因为结果也是 BigDecimal.ZERO 。但是当我尝试其他 NOT ZERO 值时,返回一个新对象。
标签: java