如何强制Java在除以0.0或从负双提取根时抛出算术异常?代码如下:
double a = 1; // or a = 0 to test division by 0
double b = 2;
double c = 100;
double d = b*b - 4*a*c;
double x1 = (-b - Math.sqrt(d)) / 2 / a;
double x2 = (-b + Math.sqrt(d)) / 2 / a;
Run Code Online (Sandbox Code Playgroud)
Mic*_*rdt 12
由于Java实现了浮点运算的IEEE 754标准,因此要求这些运算应返回具有"非数字"或"无穷大"含义的特定位模式,因此不可能使Java为这些操作抛出异常.
如果您想特别处理这些情况,可以将结果与相应的常量进行比较Double.POSITIVE_INFINITY(对于NaN,您必须使用该isNAN()方法,因为NaN!= NaN).请注意,您不必在每次单独操作后进行检查,因为后续操作将保持NaN或Infinity值.只需检查最终结果.
| 归档时间: |
|
| 查看次数: |
24659 次 |
| 最近记录: |