Атрибут precision
Атрибут precision класса finfo возвращает целое число,
равное количеству десятичных знаков, которые можно гарантированно вывести
для числа с плавающей запятой без потери точности при обратном чтении.
Это значение вычисляется на основе машинного эпсилон, и по сути
указывает, сколько цифр после запятой имеет смысл выводить при
стандартном форматировании, чтобы избежать накопления ошибок округления.
Атрибут доступен только для экземпляров класса finfo,
полученных для конкретного типа данных с плавающей запятой.
Синтаксис
np.finfo(dtype).precision
Атрибут не принимает аргументов и возвращает целое число.
Пример
Получим значение точности для типа данных float64
(стандартный тип чисел с плавающей запятой двойной точности):
import numpy as np
res = np.finfo(np.float64).precision
print(res)
Результат выполнения кода:
15
Значение 15 означает, что для типа float64
можно гарантированно выводить до 15 значащих цифр.
Пример
Сравним значение precision для разных типов данных
с плавающей запятой:
import numpy as np
precision_float32 = np.finfo(np.float32).precision
precision_float64 = np.finfo(np.float64).precision
precision_float128 = np.finfo(np.longdouble).precision
print(precision_float32)
print(precision_float64)
print(precision_float128)
Результат выполнения кода:
6
15
18
Как видно из примера, точность увеличивается с ростом разрядности типа данных.
Пример
Покажем практическое применение атрибута для форматирования вывода чисел с плавающей запятой:
import numpy as np
val = np.pi
prec = np.finfo(np.float64).precision
# Выводим число с количеством знаков, соответствующим precision
print(f"{val:.{prec}g}")
Результат выполнения кода:
3.14159265358979
В данном примере число π выведено с 15 значащими цифрами,
что соответствует значению атрибута precision для типа
float64.
Смотрите также
-
класс
finfo,
который предоставляет информацию о типах с плавающей запятой -
атрибут
eps,
который возвращает машинный эпсилон для данного типа -
атрибут
epsneg,
который возвращает наименьшее число, которое можно добавить к 1.0 -
атрибут
resolution,
который возвращает приблизительное разрешение типа