当我尝试执行此代码时,结果如何大于Double.MAX_Value?溢出/下溢是否会影响java中的双数据类型?
代码:
result = Double.MAX_VALUE * Double.MAX_VALUE;
if (result > Double.MAX_VALUE) {
// Some return statements.
}
答案 0 :(得分:6)
浮点乘法的结果由IEEE 754算法的规则确定:
- [...]
- 如果产品的幅度太大而无法表示,我们说操作溢出; 结果是无限的适当标志。
由于Double.MAX_VALUE * Double.MAX_VALUE
太大而无法表示,因此其值变为无穷大。