我想将数字除以100,数字是对象类型。
Object a = 33;
Object b = .33;
Double d = (Double) a / 100;
Double e = (Double) b / 100;
首先,我将类型转换为Double,但是对于Integer来说,它无法“无法将数值转换为java.lang.Double”。
我需要在分割前检查实例吗?我是新手,不知道这是怎么回事?
编辑:我无法避免使用对象
答案 0 :(得分:3)
如果你必须使用物品(我建议你不要因为多种原因),你可以这样做
Number a = 33;
Number b = 0.33;
Number d = a.doubleValue() / 100.0;
Number e = b.doubleValue() / 100.0;
但是,如果
,您应该只使用数字对象null
List<Double>
BigDecimal
答案 1 :(得分:2)
你需要使用双打而不是对象
final int a = 33;
final double b = 0.33;
final double d = a / 100.0;
final Double e = b / 100.0;
答案 2 :(得分:1)
在Java中,您可以将 int 等原语投射到 double ,但是您无法对 Integer 和加倍。
在您的示例中,33被自动装箱到一个Integer,然后无法将其强制转换为Double。在特定情况下,您可以通过以下方式避免异常:
Object a = 33;
if(a instanceof Number) {
Double d = ((Number) a).doubleValue() / 100;
System.out.println(d);
}
但是没有最好的方法来解决你的问题。最好使用原始int和double,或者他们的包装器Integer和Double,而不是Object。