作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在做一些图形类的东西,我经常想把两点之间的斜率作为 dy/dx。但是,如果我的 dx 恰好为零,我将得到被零除错误。
如果 dx 为零,我可以将其设置为较小的值,比如 0.001。但是,我想提高解决方案的准确性。
对于这个给定的问题可能有更好的解决方案,但我确信存在其他问题,其可能的解决方案要求同样的事情:尽可能小的非零数。
此外,获得它的成本是多少?是否有很大可能无法可靠地复制此数字,可能是由于舍入误差等原因?
最佳答案
你能用decimal
吗?这个模块?你可以用这个做一个非常小的固定浮点值:
import decimal
from decimal import Decimal
>>> almost_zero = Decimal((0, (1,), decimal.getcontext().Emin))
>>> almost_zero
Decimal('1E-999999')
这是一个非常小的数字,应该适合您的目的。
>>> 1 / almost_zero
Decimal('1E+999999')
或者你可以从 sys.float_info
中挖掘出一些东西.
>>> import sys
>>> sys.float_info
sys.float_info(max=1.7976931348623157e+308, max_exp=1024, max_10_exp=308, min=2.2250738585072014e-308, min_exp=-1021, min_10_exp=-307, dig=15, mant_dig=53, epsilon=2.220446049250313e-16, radix=2, rounds=1)
>>> almost_zero = sys.float_info.min
>>> 1 / almost_zero
4.49423283715579e+307
关于python - 我可以可靠地生成的最小非零数是多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65803724/
我是一名优秀的程序员,十分优秀!