Java中为什么sum+=Math.pow(2, count-1);这个语句正确,但是为什么sum=sum+Math.pow(2, count-1);这个语句有错误呢?

sum+=Math.pow(2, count-1);和sum=sum+Math.pow(2, count-1);的区别

1.Math.pow(a,b) 方法返回参数类型为double。+= -+ 等赋值运算 隐藏了一个强制类型转换;
2.运算时,不同数据类型需先转换为同一数据类型 ;
3.sum=sum+Math.pow(2, count-1) 等式右边自动向上类型转换为double 当等式两边不一致就出现错误,强制类型转换即可;
4.sum 参数 您没说明数据类型,如果sum 定义的时候为 double ,两个语句也不会出现错误

赋值运算符会进行强制类型转换的

感谢各位大佬!