Python Glossary English

Python 3.9+Числа и математикафункция

math.ulp

представление

Величина младшего разряда (unit in the last place) числа — шаг между соседними float.

Синтаксис

math.ulp(...)

Расстояние между соседними float не постоянно: оно растёт вместе с величиной числа — около 1.0 это примерно 2.2e-16, а около 1e16 уже 2.0, поэтому прибавление единицы к такому числу вообще ничего не меняет. Отсюда правило сравнения: допуск задают не фиксированной эпсилон, а несколькими ulp от самих сравниваемых значений (или просто берут math.isclose с относительным допуском). Доступна с Python 3.9.

Примеры

import math
print(math.ulp(1.0))   # → 2.220446049250313e-16
print(math.ulp(0.0))   # → 5e-324
print(math.ulp(1e16))   # → 2.0
print(1.0 + math.ulp(1.0))   # → 1.0000000000000002
print(1.0 + math.ulp(1.0) / 2 == 1.0)   # → True

См. также

Открыть в полном глоссарииdocs.python.orgСообщить о неточности