Moh*_*sal 3 java floating-point divide-by-zero
我已经在这个主题上搜索了不同的问题,但没有明确的想法.检查此代码:
class Test{
public static void main(String[] s){
int a=5;
float b=(float)a/0;
System.out.print(b);
}
}
Run Code Online (Sandbox Code Playgroud)
输出是Infinity.但我没有得到的东西a是int和a/0必须抛出异常.那怎么能显示输出Infinity呢?
原因是
(float)a/0;
Run Code Online (Sandbox Code Playgroud)
被解释为
((float)a)/0;
Run Code Online (Sandbox Code Playgroud)
并不是
(float)(a/0);
Run Code Online (Sandbox Code Playgroud)
所以你实际上是在进行除法之前转换a为a float,而不是进行整数除法然后转换结果.
希望这可以帮助!