class Test
{
public static void main(String[] args)
{
short s=2,s1=200,s2;
s2=s+s1; // error: "possible loss of precision"
System.out.println(s2);
}
}
Run Code Online (Sandbox Code Playgroud)
为什么将短路添加两个短路的结果分配给编译错误?
因为为了对short执行算术运算,编译器会首先将它们扩展为整数:
S2 = s + s1
Run Code Online (Sandbox Code Playgroud)
实际上是
S2 = (int)s +(int)s1
Run Code Online (Sandbox Code Playgroud)
右手边有int类型.
| 归档时间: |
|
| 查看次数: |
2274 次 |
| 最近记录: |