【发布时间】:2018-09-23 15:44:00
【问题描述】:
我知道 Math.pow 方法在 java 中返回 double。但是这段代码没有在我的程序中产生任何错误。编译器会自动在我的代码中添加(int),还是有其他原因?
在代码之前,我声明了 整数总和 = 0; arg 是 int 数组。
for(int i=0; i < arg.length; i++) {
sum += Math.pow(2, i) * arg[i];
}
【问题讨论】:
-
什么是
args? -
sum和arg数组的数据类型是什么? -
如果 sum 是 double 并且 arg 是任何数字类型的数组,这没有错。
-
@SandeshGupta,
sum是一个int,arg[i]的类型无关紧要(反正要提升为double) -
@SandeshGupta 当 sum 为 int 时,乘法的 double 结果自动转换为 int
标签: java type-conversion int double type-narrowing