大家好! 我们经常在我们最喜欢的编程语言中使用熟悉的数字。 惯性是1,-1.5,pi甚至是复数。 但是我们很少使用NaN,+ Inf,-Inf。
注意事项:
在本文中,我使用了Python版本3.6.8的基本功能,但与其他语言(例如JS)息息相关。
数学中有很多不确定的情况。 例如,这是除以0。
在控制台中键入
1/0
您将收到ZeroDivisionError错误。 预计到了,您说什么? 是的 让我们尝试另一个示例:
0**0
如您所知,从0到0的幂是经典的数学不确定性。
但是,Python表示这是1。一个合理的问题出现了:

为什么不允许我们“用脚踢”除以0,却用这种不确定的动作报告错误的结果?
也许有人现在很愤慨,并大声喊出答案很简单:IEEE754。如果我没记错的话,正是在他的帮助下,我们同意0度中的任何数字都是1。
这就是乐趣的开始。 JavaScript还支持IEEE(0.1 + 0.2!= 0.3),但其中的1/0是无穷大,不是除以0的除法错误。
结果,我们有了(python的所有示例):
1.错误动作引起的错误
范例:
1/0
2.返回不正确的值
一个例子:
0**0
3.返回特殊值:
+ -Inf,南
一个例子:
inf=float('inf') inf-inf
我认为这令人困惑。
就在今天,我注意到了一个有趣的PHP行为:
var_dump(mt_rand(INF,INF));
我坚决反对2个选择,并且可能会支持1个。
因为,如PHP示例所示,您需要谨慎使用inf和nan。 你觉得呢