Python 如何找到低于某个值的最大浮动?
给定一个浮点数Python 如何找到低于某个值的最大浮动?,python,numpy,floating-point,Python,Numpy,Floating Point,给定一个浮点数x,我想找出小于x的最大浮点数。如何在Python中实现这一点 我曾尝试从x(x-numpy.finfo(float).eps)中减去机器epsilon,但对于足够大的浮动,这将计算为x,我需要返回的值严格小于x 有一些关于如何在C#中实现这一点的信息,但我不知道如何在Python中实现相同的位转换。有人知道怎么做,或者有其他方法来获得相同的值吗 (更大的问题——我试图通过数值计算,在0
x
,我想找出小于x
的最大浮点数。如何在Python中实现这一点
我曾尝试从x
(x-numpy.finfo(float).eps
)中减去机器epsilon,但对于足够大的浮动,这将计算为x
,我需要返回的值严格小于x
有一些关于如何在C#中实现这一点的信息,但我不知道如何在Python中实现相同的位转换。有人知道怎么做,或者有其他方法来获得相同的值吗
(更大的问题——我试图通过数值计算,在
0
的范围内,找到在x
处具有奇点的方程的根。解算器(Scipy的toms748实现)在边界上求值,它无法处理nan或inf值,因此我无法精确地将其作为边界给出x
。我不知道根与边界的距离有多近,因此我希望给出一个尽可能接近x
的边界,而不实际产生无限值并使解算器崩溃。)您正在描述的是的基本用法
>>> import numpy as np
>>> np.nextafter(1.5, 0.0) # biggest float smaller than 1.5
1.4999999999999998
>>> np.nextafter(1.5, 2.0) # smallest float bigger than 1.5
1.5000000000000002