Java 将Integer和Double类型的对象分开
我想把一个数字除以100,这个数字是对象类型的Java 将Integer和Double类型的对象分开,java,Java,我想把一个数字除以100,这个数字是对象类型的 Object a = 33; Object b = .33; Double d = (Double) a / 100; Double e = (Double) b / 100; 首先,我将类型转换为Double,但整数的“cannotcastnumericalvalue to java.lang.Double”失败 我需要在划分前检查实例吗?我是新手,不确定什么是正确的方法 编辑:我无法避免对象您需要使用双倍而非对象 final in
Object a = 33;
Object b = .33;
Double d = (Double) a / 100;
Double e = (Double) b / 100;
首先,我将类型转换为Double,但整数的“cannotcastnumericalvalue to java.lang.Double”失败
我需要在划分前检查实例吗?我是新手,不确定什么是正确的方法
编辑:我无法避免对象您需要使用双倍而非对象
final int a = 33;
final double b = 0.33;
final double d = a / 100.0;
final Double e = b / 100.0;
如果您必须使用对象(我建议您不要使用,原因有很多),您可以这样做
Number a = 33;
Number b = 0.33;
Number d = a.doubleValue() / 100.0;
Number e = b.doubleValue() / 100.0;
但是,在以下情况下,您应该只对数字使用对象
- 该值可以是
null
- 您将其用作泛型类型,例如
List
- 您使用的类型没有基元,例如
BigDecimal
Object a = 33;
if(a instanceof Number) {
Double d = ((Number) a).doubleValue() / 100;
System.out.println(d);
}
但是没有最好的方法来解决你的问题。最好使用原语int和double,或者它们的包装器Integer和double,而不是Object 在进行数学运算时,不要使用包装类型。使用
double
,而不是double
。在处理数字包装时,尽可能避免使用Object
。您将遇到比您愿意解决的更多的问题。我无法避免Object,因为它已经用于多种数据类型。对否决票有什么解释吗?我应该删除这个问题吗?