也许这是一个错误的问题,但我很好奇。我知道当被要求除以0时,许多语言会简单地爆炸和失败,但是有没有任何编程语言可以智能地处理这个不可能的总和 - 如果是这样,它们会做什么?他们是继续处理,将350/0视为350,还是停止执行,或者是什么?
答案 0 :(得分:4)
当在IEEE浮点上下文中除以零时,鲜为人知的Java programming language给出特殊常量Double.POSITIVE_INFINITY
或Double.NEGATIVE_INFINITY
(取决于分子)。整数除零是未定义的,导致ArithmeticException
被抛出,这与“爆炸和失败”的情况完全不同。
答案 1 :(得分:3)
INTERCAL标准库在除以零时返回#0
答案 2 :(得分:1)
在Java中,在浮点上下文中除以零会产生特殊值Double.POSITIVE_INFINITY
或Double.NEGATIVE_INFINITY
。
答案 3 :(得分:0)
答案 4 :(得分:0)
在Delphi中,如果它在运行时发生,则抛出编译时错误(如果除以0值const)或者捕获运行时错误。
C和C ++也是如此。
在PHP中,您会收到警告:
警告:除以零 < file.php> 在线 X
所以,在PHP中,类似于:
$i = 123 / 0;
$ i将被设置为空。 但是 $ i不是=== NULL且isset($ i)返回true而is_string($ i)返回false。
答案 5 :(得分:0)
来自Wikipedia:
扩展实数行的无穷大可以用IEEE浮点数据类型表示,就像普通的浮点值(如1,1.5等)一样。它们不是任何方式的错误值,尽管它们通常是(但是并不总是,因为它取决于舍入)当溢出时用作替换值。在除以零的异常时,将返回正或负无穷大作为精确结果。
答案 6 :(得分:0)
Python(至少版本2,我没有3)抛出一个可以被捕获的ZeroDivisionError。
num = 42
try:
for divisor in (1,0):
ans = num / divisor
print ans
except ZeroDivisionError:
print "Trying to divide by 0!"
打印出来:
42
Trying to divide by 0!
答案 7 :(得分:0)
答案 8 :(得分:0)
根据IEEE定义常量NaN等的浮点数。任何涉及该值的连续操作将保持不变直到结束。整数或整数不同,抛出异常...在java ...
答案 9 :(得分:-2)
我正在使用多面体,并试图选择一种喜欢inf的语言。 多面体{a,b}的总边,其中a是每个多边形的边,b是每个角的边是 E = 1 /(1 / a + 1 / b-1/2)
如果E为负,则为负曲率,但如果E为无穷大(1/0),则它将平铺该平面。示例:{3,6} {4,4}