numpy.format_float_positional
numpy.format_float_positional(x, precision=None, unique=True, fractional=True, trim='k', sign=False, pad_left=None, pad_right=None)
Функция format_float_positional() возвращает строковое представление числа с плавающей точкой.
Данная функция использует IEEE округление и алгоритм Dragon4.
-
- x - вещественное число Python или скаляр NumPy.
- Входное значение.
- precision - целое положительное число или None, (необязательный параметр).
-
Определяет максимальное количество выводимых цифр. Если
unique
установлено в False, тоprecision
должно быть целым числом. Еслиunique
установлено в True, тоprecision
может быть None. - unique - True или False, (необязательный параметр).
-
Если True, то строковое представление числа создается из его кратчайшей записи, необходимой для его однозначной идентификации среди значений того же типа с использованием разумного округления. В случае если еще и не указано значение
precision
, то будут распечатаны все необходимые цифры, если жеprecision
указано, то число обрезается после значенияprecision
, а затем округляется. Если False, то число обрезается после значенияprecision
, а затем округляется. - fractional - True или False, (необязательный параметр).
- Если True, то отсечение значащих цифр делается на основе общего количества цифр после десятичной точки, включая начальные нули. Если False, то отсечение выполняется на основе общего количества цифр до и после десятичной точки, без учета начальных нулей.
- trim - одна из строк: 'k', '.', '0', '-', (необязательный параметр).
-
Задает метод округления цифр после усечения до значения точности
precision
:'k'
- сохраняет завершающие тули и десятичную точку, даже если за ней следуют одни нули;'.'
- отсекает все завершающие нули но оставляет десятичную точку;'0'
- отсекает все до десятичной точки и вставить ноль после нее;'-'
- отсекает все конечные нули и любой конечный десятичный знак.
- sign - True или False, (необязательный параметр).
- Определяет отображение знака '+' перед положительными значениями.
- pad_left - целое положительное число, (необязательный параметр).
-
Дополняет число пробелами слева пока количество символов перед десятичной точкой не станет равно значению в
pad_left
. - pad_right - целое положительное число, (необязательный параметр).
-
Дополняет число пробелами справа пока количество символов после десятичной точки не станет равно значению в
pad_right
.
-
- str - строка Python
- строковое представление исходного числа x.
Примеры
Без дополнительных параметров, возвращается строковое представление вещественного числа:
>>> import numpy as np
>>>
>>> np.e
2.718281828459045
>>>
>>> np.format_float_positional(np.float16(np.e))
'2.719'
>>>
>>> np.format_float_positional(np.float32(np.e))
'2.7182817'
>>>
>>> np.format_float_positional(np.float64(np.e))
'2.718281828459045'
>>>
>>> # точное значение 2,7182818284590452353
... np.format_float_positional(np.float96(np.e))
'2.7182818284590450908'
Параметры unique
и precision
позволяют задать количество значащих цифр и точность:
>>> np.format_float_positional(np.float16(0.1)) # unique = True по умолчанию
'0.1'
>>>
>>> np.format_float_positional(np.float16(0.1), unique=False, precision=15)
'0.099975585937500'
Параметр fractional
позволяет определить как делать отсечение - на основе всех цифр или только после десятичной точки:
>>> np.format_float_positional(np.float16(222.1), unique=False, precision=15)
'222.125000000000000'
>>>
>>> np.format_float_positional(np.float16(222.1), unique=False, precision=15, fractional = False)
'222.125000000000'
Параметр trim
позволяет задать режим округления после усечения числа:
>>> np.format_float_positional(np.float96(1.000000001), precision=7, trim = 'k')
'1.0000000'
>>>
>>> np.format_float_positional(np.float96(1.000000001), precision=7, trim = '.')
'1.'
>>>
>>> np.format_float_positional(np.float96(1.000000001), precision=7, trim = '0')
'1.0'
>>>
>>> np.format_float_positional(np.float96(1.000000001), precision=7, trim = '-')
'1.'
Если необходимо отображать знак '+' перед положительными числами, то установите параметр sign
в True:
>>> np.format_float_positional(np.float96(1.000001), sign = True)
'+1.0000009999999999177'
Параметры pad_left
и pad_right
позволяют задать выравнивание чисел слева и справа от десятичной точки знаками пробела:
>>> np.format_float_positional(np.float64(1.000001), pad_left = 10, pad_right = 10)
' 1.000001 '