以这两个片段为例:
情况1:
Scanner s = new Scanner(System.in);
int n = s.nextInt(); /** take user input **/
n *= Double.NEGATIVE_INFINITY;
Run Code Online (Sandbox Code Playgroud)
和
案例2:
int k=10;
double kk = 10.10;
int rst = k*kk;
Run Code Online (Sandbox Code Playgroud)
在这两种情况下,我都没有从我这边进行任何类型转换,但是Case 1执行并n正确打印值,但是Case 2抛出错误,can not convert from double to int.为何如此区别?
第一个工作,第二个工作,因为*= += -=等添加自动演员.
例如,如果您要将第二个示例更改为;
int k=10;
double kk = 10.10;
k*= kk;
Run Code Online (Sandbox Code Playgroud)
它应该工作.或者你可以添加一个像这样的显式转换rst = (int)(k*kk);
| 归档时间: |
|
| 查看次数: |
415 次 |
| 最近记录: |