我知道Math.pow方法在java中返回double。但是这段代码并没有在我的程序中产生任何错误。编译器是自动将(int)添加到我的代码中,还是有其他原因?
在代码之前,我声明int sum = 0;arg是int数组。
for(int i=0; i < arg.length; i++) {
sum += Math.pow(2, i) * arg[i];
}发布于 2018-04-13 10:27:44
如果其中一个操作数为double类型,则另一个操作数转换为double。
表达式变成int += double,根据jls-15.26.2复合赋值运算符
二进制操作的结果转换为左手变量的类型。
最后将结果转换为int。
https://stackoverflow.com/questions/49814320
复制相似问题