Python – math.ulp(x)函数
ULP 代表“最后位置的单元”。 math.ulp() 是在Python 3.9.0 版本中引入的,它返回浮点数x 的最低有效位的值。在数值分析和计算机科学中,最小精度单位 (ULP) 或最后一个单位是浮点数之间的间距。
笔记:
- 如果参数是 NaN(不是数字),则输出是 NaN。
- 如果输入 x 为负,则输出为 ulp(-x)。
- 如果输入 x 为正无穷大,则输出为 inf。
- 如果输入为零,则最小的正非规范化可表示浮点数是输出(小于最小正规范化浮点数 sys.float_info.min)。
- 如果输入值 x 是可表示的最大正浮点数,则 x 的最低有效位的值是输出,这样第一个小于 x 的浮点数是 x – ulp(x)。
- 否则,如果输入值 x 是一个正有限数,则 x 的最低有效位的值是输出,这样第一个大于 x 的浮点数是 x + ulp(x)。
Syntax: math.ulp(x)
Parameter:
x: float whose ulp is returned
Return:
Return the value of the least significant bit of the float x.
示例:显示 math.ulp(x) 方法的工作。
Python3
# python program to explain
# math.ulp(x) for different values of x
import math
import sys
# when x is NaN
x = float('nan')
print(math.ulp(x))
# when x is positive infinity
x = float('inf')
print(math.ulp(x))
# when x is negative infinity
print(math.ulp(-x))
# when x = 0
x = 0.0
print(math.ulp(x))
# when x is maximum representable float
x = sys.float_info.max
print(math.ulp(x))
# x is a positive finite number
x = 5
print(math.ulp(x))
# when x is a negative number
x = -5
print(math.ulp(x))
输出:
nan
inf
inf
5e-324
1.99584030953472e+292
8.881784197001252e-16
8.881784197001252e-16