最小的正float64数

时间:2016-07-20 09:51:30

标签: python numpy

我需要找到尽可能接近零的numpy.float64值。

Numpy提供了几个允许执行类似操作的常量:

  • np.finfo(np.float64).eps = 2.2204460492503131e-16
  • np.finfo(np.float64).tiny = 2.2250738585072014e-308

这些都相当小,但是当我这样做时

>>> x = np.finfo(np.float64).tiny
>>> x / 2
6.9533558078350043e-310

结果甚至更小。使用即兴二进制搜索时,我可以在值向下舍入到1e-323之前使用约0.0

我失踪的numpy是否有一个常数?或者,是否有正确的方式来执行此操作?

2 个答案:

答案 0 :(得分:12)

使用np.nextafter

>>> import numpy as np
>>> np.nextafter(0, 1)
4.9406564584124654e-324
>>> np.nextafter(np.float32(0), np.float32(1))
1.4012985e-45

答案 1 :(得分:0)

2^-1075 是最小的正浮点数。 2^-1075 = 5.10^-324