如何解决Sympy 检查数字是否自然
S1C1.
>>> from sympy.core.numbers import Float
>>> Float(2)
2.00000000000000
>>> Float(2).is_integer
False # what ??
解决方法
在整个 SymPy 代码库中都会出现此类查询,我们对此的解决方案是在相关表达式上使用 as_int
。当 strict
标志关闭时,与 int 等效的浮点数将作为 int 返回。否则(或者如果表达式不是整数)将引发 ValueError:
>>> from sympy import Float
>>> from sympy.core.compatibility import as_int
>>> as_int(2.0)
Traceback (most recent call last):
...
ValueError: 2.0 is not an integer
>>> as_int(2.0,strict=False)
2
在测试函数中使用它给出:
>>> def isint(i):
... try: as_int(i,strict=False)
... except: return False
... return True
>>> isint(Float(2))
True
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。