为什么用Java将数字除以零无穷大?

为什么下面的Java代码

System.out.println(new Integer(1)/ new Double(0));

打印’Infinity’且未定义。这在数学上不是错吗?

回答:

在数学中,有许多支持算术的不同结构。最突出的数字(例如自然数,整数和实数)不包括无穷大。在那些系统中,不支持除以零。

其他系统的确包含至少一个无穷大。参见,例如,真实的投影线。它确实允许被零除。

只有一种方法可以知道在特定系统中数学定义或未定义的内容-研究该系统。

类似地,操作是可交换的(a op b == b op a)和/或关联的(a op(b op c)==(a op b)op c)取决于系统和操作。

IEEE

754二进制浮点数是一个具有有限元素集的系统,其中包括两个无穷大。加法和乘法都是可交换的,而不是关联的。Java实数和双重算术均基于此。Java语言规范是唯一确定Java浮点算术中定义或未定义内容的唯一方法。

在使用浮点数时,许多最严重的错误都有其依据,即假定浮点数是实数,而不是有效但不同的系统。

以上是 为什么用Java将数字除以零无穷大? 的全部内容, 来源链接: utcz.com/qa/404646.html

回到顶部