我是Java编程语言的新手,下面提出了一个愚蠢的问题.
在java中执行1/0将生成运行时异常,因为该值未定义.
但是1.0/0.0就可以了,价值是无限的.
双数据类型有什么特别之处吗?可以帮助理解一个很好的解释?提前致谢.
双数据类型有什么特别之处吗?
是的,double可以代表无限(可以float),int但不能.浮点类型遵循IEEE 754,它允许有符号的无穷大值,以及"非数字"(NaN)值,例如尝试获得-1的平方根.
来自JLS 15.17.2(分部):
如果整数除法中除数的值为0,则抛出ArithmeticException.
和
浮点除法的结果由IEEE 754算法的规则决定:
- ...
- 将零除以零导致NaN; 零除以任何其他有限值导致有符号零.该标志由上述规则确定.
- 将零非零有限值除以零会产生有符号无穷大.
| 归档时间: |
|
| 查看次数: |
860 次 |
| 最近记录: |