Python中的epsilon有没有标准的值(或者说获得方法)? 我需要比较浮点值,并想比较最小的差异。 在C ++中有一个函数提供了numeric_limits::epsilon( ) ,它给出了任何给定数据types的epsilon值。 Python中是否有相当的东西?
我想了解什么是机器epsilon。 根据维基百科,它可以计算如下: def machineEpsilon(func=float): machine_epsilon = func(1) while func(1)+func(machine_epsilon) != func(1): machine_epsilon_last = machine_epsilon machine_epsilon = func(machine_epsilon) / func(2) return machine_epsilon_last 但是,它只适用于双精度数字。 我有兴趣修改它以支持单精度数字。 我读过numpy可以使用,特别是numpy.float32类。 任何人都可以帮助修改该function?
http://msdn.microsoft.com/en-us/library/system.double.epsilon.aspx 如果创build一个自定义algorithm来确定两个浮点数是否相等,则必须使用大于Epsilon常数的值来确定两个值的可接受绝对差值,以使其相等。 (通常情况下,差异的边际比Epsilon大很多倍)。 那么这不是一个可以用于比较的小数? 我不太了解MSDN的措辞。 它可以用作例子中的epsilon吗? – 什么是最有效的浮动和双重比较方式? 最后,这似乎非常重要,所以我想确保我有一个坚实的实施平等,大于,小于,小于或等于,大于或等于。