我在堆栈溢出中看到以下帖子,这与我的问题有关:
BigDecimal - to use new or valueOf
我知道建议对BigDecimal使用字符串构造函数 但我的问题是,一旦你用字符串定义了一个bigDecimal,你可以稍后使用valueof来使用该值。
如果以下代码有效,有人可以告诉我吗?
BigDecimal tipPercent = new BigDecimal("0.0");
if (tipState == TipSelection.FIFTEEN) {
tipPercent = BigDecimal.valueOf(FIFTEEN);
}
谢谢!
答案 0 :(得分:1)
如果您的意思是可以恢复您开始使用的String
,那么可以选择:您可以使用BigDecimal
再次将String
变为toString()
。所以在你的情况下你可以打电话
tipPercent.toString()
获取String
的{{1}}代表。
我说"有点"它可能不完全是你所放入的,但它是等同的。如果您通过传递tipPercent
来创建BigDecimal
,那么您将返回"00"
,但它代表相同的数字。
答案 1 :(得分:1)
这取决于变量FIFTEEN的类型。 BigDecimal中的valueOf仅适用于double或long。
但是你可以将BigDecimal重新分配给另一个BigDecimal,无论它是如何创建的。