当前位置: 首页 > 面试题库 >

除以零时如何获得NaN

曾飞沉
2023-03-14
问题内容

当我在Python中进行浮点除法时,如果除以零,则会出现异常:

>>> 1.0/0.0
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ZeroDivisionError: float division

我真的很想得到NaNInf取而代之(因为NaNInf会正确传播到计算的其余部分,而不会杀死我的程序)。

我怎样才能做到这一点?


问题答案:

实现此行为的最简单方法是使用numpy.float64而不是Python默认float类型:

>>> import numpy
>>> numpy.float64(1.0) / 0.0
inf

当然,这需要NumPy。您可以用来numpy.seterr()微调错误处理。



 类似资料:
  • 我在做一个Android计算器,除以零得到9.223372e+18。为什么不显示NaN或Crash?我认为它的结果是9.223372e+18,因为这是可能的最大的double值,因为我使用了double数据类型除以零。既然这会让用户感到困惑,我该如何绕过这个问题呢? 嗨,伙计们,谢谢你们的回复。我很感激。我在下面发布了我的代码。

  • 问题内容: 我有一个I2C设备,需要两个输入:分母和分子。两者均被写入不同的地址,因此不进行实际计算()。问题在于,I2C器件上可能会发生被零除的情况,因此需要检查被零除的错误。理想情况下,如果除法是通过Java代码完成的,则将发生完全相同的事情。 目前,我已经绑定了一个用于进行除法运算的未使用变量,但是我担心它会被优化: 当然,有更好的方法! 问题答案: 你应该 不是 抛出一个Arithmeti

  • 问题内容: 我有一个包含许多字段的结构-我已经弄清楚了如何使用反射来提取字段名称,值和标签信息。我还想确定一个字段的值是否不同于该字段的默认值。 目前,我有这个(有效,但有点臭): 在我看来,在这种情况下应该有一种避免类型切换的方法-我正在尝试做的是建立一个字段/值映射,其值不同于默认的零值,例如: 是否有一种优雅的方式来实现这一目标? 谢谢! 问题答案: 对于支持相等操作的类型,您可以只比较包含

  • 如何获得以太币Ether 要想获得以太币Ether你有两种途径可以选择: 1.自己开采挖矿 2.从别人那里获取以太币 在私有链中自己挖矿,或者公共测试链(testnet)是非常简单直接的。但是,在主要的公有链(mainnet)中,它需要很多很明显的专用GPU时间,除非你已经拥有多个专用GPU的矿机,否则基本上不太可行。如果你希望使用私有链,则在这个官方文档中有一些指导。 要购买以太币Ether,你

  • 问题内容: 为什么当我这样做: 我得到0,但是当我得到 我有价值吗? 我本来希望更高的精度除法返回更高的精度结果,为什么不是这种情况呢? 问题答案: 发生这种情况的原因是,对于数学运算,使用http://msdn.microsoft.com/zh- cn/library/ms190476.aspx#division中 找到的规则来计算得出的精度和小数位数 操作 e1 / e2 结果精度 p1-s1

  • 我试图计算变量,但我的答案是错误的(警告:除以零),我假设它是因为默认情况下,我的变量实际上是零。 我怎么能重写这个来检查它是否为零,只有运行计算,如果它不是零? 除此之外,当我的变量不是“0”时,代码可以完美地工作 在编辑脚本之前,默认情况下所有变量都是“0”。