我怎样才能避免在我的代码中使用所有强制转换,以免被声纳盒装/取消装箱?
这是我的代码:
Double value = (Double) input.get(0);
int integer = new Double(value).intValue();
Double dec = Math.abs(value - (new Double(integer ).doubleValue()));
我想尽量避免像我一样投射,但我不确定我是否可以用这种方式装箱。
有什么想法吗?
谢谢。
答案 0 :(得分:2)
我不确定input.get()
返回什么类型,所以我假设第一次演员是必要的。您不需要在每一行上实例化新的Double
对象,您只需调用其方法即可返回所需的正确类型值。
Double value = (Double) input.get();
int integerPart = value.intValue();
double decimalPart = Math.abs(value - integer.doubleValue());
看起来你只是想提取double的整数和小数部分,在这种情况下,这段代码更清楚地表达了意图:
Double value = (Double) input.get();
int integerPart = value.intValue();
double decimalPart = Math.abs(value - Math.floor(value));