Double a = new BigDecimal(Double.valueOf(x))
.setScale(2,BigDecimal.ROUND_HALF_DOWN).doubleValue();
x
的类型为Double
,我无法更改..
答案 0 :(得分:2)
如果x
的类型为Double
,则Double.valueOf(x)
是警告的原因。只需写一下x
,它已经是正确的类型。
答案 1 :(得分:2)
Double.valueOf
获取原始double
并返回一个装箱Double
,而不是相反。您传递的是Double
框,因此x
会自动装箱,然后由Double.valueOf
明确装箱,然后再次自动装箱以将其传递给new BigDecimal
。只需删除valueOf
电话:
Double a = new BigDecimal(x).setScale(2,BigDecimal.ROUND_HALF_DOWN).doubleValue();
这会将autounbox x
一次传递给BigDecimal
构造函数。