Вещественные числа float в Python
Числа с плавающей точкой (тип float ), их еще называют вещественными числами — это последовательность десятичных цифр, которая включает десятичную точку . , суффикс экспоненциального/научного представления e или E , за которым следует необязательный знак + или — и одна или несколько цифр. Такой литерал не может начинаться с символа e или E , первым символом может быть любая цифра или точка.
1., 1.0, .1, 0.1, 1e+1, 1.e-3, 1.0e0 # (1.0, 1.0, 0.1, 0.1, 10.0, 0.001, 1.0)
Тип float в Python соответствуют числам с двойной точностью в С тип double как в отношении диапазона допустимых значений, так и точности. Об ограничениях типа float для конкретной платформы, можно узнать из результата функции sys.float_info .
Числа с плавающей точкой поддерживают следующие операции:
- арифметические операции;
- операции сравнения.
Тип float в языке Python представлен классом float() , он позволяет:
- преобразовать строку с записью целого числа int в тип float
- преобразовать строку с записью вещественного числа в тип float
- преобразовать целые числа типа int в вещественные числа типа float
- принимает строки ‘nan’ — не число и ‘inf’ — положительная или отрицательная бесконечность, это когда число выходит за указанные пределы ( OverflowError )
Класс float() не сможет преобразовать к типу float числа типа complex , т. к. нет однозначного способа преобразования данного типа чисел.
Начиная с Python 3.6, чтобы облегчить визуальную оценку величины числа, между цифрами и после любого спецификатора системы счисления разрешается вставлять одиночные символы подчеркивания.
>>> 107_020.45, 107_020.000_001, .125_17 # (107020.45, 107020.000001, 0.12517)
Методы типа float :
float.as_integer_ratio() :
Метод float.as_integer_ratio() возвращает кортеж целых чисел, первое из которых равно числителю а второе всегда положительному знаменателю дроби, значение которой точно равно исходному числу типа float :
Новое в Python 3.8
>>> 3.5.as_integer_ratio() # (7, 2)
float.is_integer() :
Метод float.is_integer() возвращает True если дробная часть числа равна 0 и False если нет:
>>> 3.0.is_integer() # True >>> 3.5.is_integer() # False
float.hex() :
Метод float.hex() возвращает представление числа в шестнадцатеричной системе счисления:
>>> 3.543212.hex() # '0x1.c587f88765ba7p+1'
float.fromhex(s) :
Метод float.hex() преобразовывает шестнадцатеричную строку s в число типа float :
>>> float.fromhex(''0x1.9e00000000000p+6'') # 103.5 >>> float.fromhex(' 0x1.c587f88765ba7p+1 ') # 3.543212 >>> float.fromhex(' 0x0.1p+3') # 0.5
Примеры использования преобразования объектов к типу float :
# Преобразование типа int к типу float >>> float(10) # 10.0 # Преобразование строки с записью числа в тип `float` >>> float(' -15 ') # -15.0 >>> float(' -15_125') # -15125.0 >>> float(' -3.500 ') # -3.5 >>> float('.500 ') # 0.5 >>> float(' -1e-1') # -0.1 >>> float(' 1.e-5 ') # 1e-05 >>> float(' 1.5e7 ') # 15000000.0 >>> float(' 3.5657e+3 ') # 3565.7 >>> float('nan') # nan >>> float('-inf') # -inf
- КРАТКИЙ ОБЗОР МАТЕРИАЛА.
- Утиная типизация ‘Duck Typing’
- Что такое вызываемый объект callable?
- Как проверить тип переменной/объекта
- Логический тип данных bool
- Целые числа int
- Ограничение длины преобразования целочисленной строки
- Вещественные числа float
- Комплексные числа complex
- Типы последовательностей
- Список list
- Кортеж tuple
- Диапазон range
- Текстовые строки str
- Словарь dict
- Множество set и frozenset
- Итератор Iterator, протокол итератора
- Генератор generator и выражение yield
- Контекстный менеджер with
- Байтовые строки bytes
- Байтовый массив bytearray
- Тип memoryview, буфер обмена
- Файловый объект file object
- Универсальный псевдоним GenericAlias
- Объект объединения Union
Преобразует число/строку с записью числа в вещественное число
Если аргумент является строкой, то запись должна содержать десятичное число и может иметь предшествующий знак и начальные(конечные) пробелы. Предшествующий знак может быть ‘+’ или ‘-‘ , знак ‘+’ не имеет никакого влияния на результат. Аргумент может также быть строкой, представляющей NaN (не число), или положительной или отрицательной бесконечностью. Точнее, входные данные должны соответствовать общепринятой грамматике после удаления начальных и конечных пробельных символов
Если аргумент является целым числом или числом с плавающей запятой, возвращается число с плавающей запятой с тем же значением (в пределах точности Python с плавающей запятой). Если аргумент находится вне диапазона вещественных чисел Python, бросается исключение OverflowError .
Дополнительно смотрите материал по теме «Проблемы точности типа float в Python».
Примеры преобразований числа или строки в число с плавающей запятой.
str_to_float = ' -3.500 ' x = float(str_to_float) print(x) # Вывод -3.5 x = float(10) print(x) # Вывод 10.0
- ОБЗОРНАЯ СТРАНИЦА РАЗДЕЛА
- Функция abs(), абсолютное значение числа
- Функция all(), все элементы True
- Функция any(), хотя бы один элемент True
- Функция ascii(), преобразует строку в ASCII
- Функция bin(), число в двоичную строку
- Класс bool(), логическое значение объекта
- Функция breakpoint(), отладчик кода
- Класс bytearray(), преобразует в массив байтов
- Класс bytes(), преобразует в строку байтов
- Функция callable(), проверяет можно ли вызвать объект
- Функция chr(), число в символ Юникода
- Класс classmethod, делает функцию методом класса
- Функция compile() компилирует блок кода Python
- Класс complex(), преобразует в комплексное число
- Функция delattr(), удаляет атрибут объекта
- Класс dict() создает словарь
- Функция dir(), все атрибуты объекта
- Функция divmod(), делит числа с остатком
- Функция enumerate(), счетчик элементов последовательности
- Функция eval(), выполняет строку-выражение с кодом
- Функция exec(), выполняет блок кода
- Функция filter(), фильтрует список по условию
- Класс float(), преобразует в вещественное число
- Функция format(), форматирует значение переменной
- Класс frozenset(), преобразует в неизменяемое множество
- Функция getattr(), значение атрибута по имени
- Функция globals(), переменные глобальной области
- Функция hasattr(), наличие атрибута объекта
- Функция hash(), хэш-значение объекта
- Функция help(), справка по любому объекту
- Функция hex(), число в шестнадцатеричную строку
- Функция id(), идентификатор объекта
- Функция input(), ввод данных с клавиатуры
- Класс int(), преобразует в тип int
- Функция isinstance(), принадлежность экземпляра к классу
- Функция issubclass(), проверяет наследование класса
- Функция iter(), создает итератор
- Функция len(), количество элементов объекта
- Класс list(), преобразовывает в список
- Функция locals(), переменные локальной области
- Функция map(), обработка последовательности без цикла
- Функция max(), максимальное значение элемента
- Класс memoryview(), ссылка на буфер обмена
- Функция min(), минимальное значение элемента
- Функция next(), следующий элемент итератора
- Класс object(), возвращает безликий объект
- Функция oct(), число в восьмеричную строку
- Функция open(), открывает файл на чтение/запись
- Функция ord(), число символа Unicode
- Функция pow(), возводит число в степень
- Функция print(), печатает объект
- Класс property(), метод класса как свойство
- Класс range(), генерирует арифметические последовательности
- Функция repr(), описание объекта
- Функция reversed(), разворачивает последовательность
- Функция round(), округляет число
- Класс set(), создает или преобразовывает в множество
- Функция setattr(), создает атрибут объекта
- Класс slice(), шаблон среза
- Функция sorted(), выполняет сортировку
- Декоратор staticmethod(), метод класса в статический метод
- Класс str(), преобразует объект в строку
- Функция sum(), сумма последовательности
- Функция super(), доступ к унаследованным методам
- Класс tuple(), создает или преобразует в кортеж
- Класс type(), возвращает тип объекта
- Функция vars(), словарь переменных объекта
- Функция zip(), объединить элементы в список кортежей
- Функция __import__(), находит и импортирует модуль
- Функция aiter(), создает асинхронный итератор
- Функция anext(), следующий элемент асинхронного итератора
Функция float() в Python
Функция float() возвращает число с плавающей точкой из переданного числа или строки.
int_number = 25
# Конвертируем int в float
float_number = float ( int_number )
print ( float_number )
Синтаксис функции float()
Параметры функции float()
x — число или строка, которую необходимо преобразовать в число с плавающей точкой. Если это строка, она должна содержать десятичные точки.
Тип параметра | Применение |
Число с плавающей точкой | Используется как число с плавающей точкой. |
Целое число | Используется как целое число. |
Строка | Должна содержать десятичные числа. Начальные и конечные пробелы удаляются. Необязательное использование знаков «+» и «-«. Может содержать NaN, Infinity, inf . |
Возвращаемое значение функции float()
Функция float() возвращает:
эквивалентное число с плавающей точкой, если аргумент передан;
0.0 , если аргумент не передан;
ошибку OverflowError , если аргумент имеет значение вне диапазона значений чисел с плавающей точкой в Python.
Arduino.ru
Тип данных float служит для хранения чисел с плавающей запятой. Этот тип часто используется для операций с данными, считываемыми с аналоговых входов. Диапазон значений — от -3.4028235E+38 до 3.4028235E+38. Переменная типа float занимает 32 бита (4 байта) в памяти.
Тип float имеет точность 6-7 знаков, имеются ввиду все знаки, а не только мантисса. Обычно для увеличения точности используют другой тип — double, но на платформе Arduino, double и float имеют одинаковую точность.
Хранение в памяти чисел с плавающей точкой в двоичной системе обуславливает потерю точности. Так, например, 6.0 / 3.0 не обязательно равен 2.0. Сравнивая два числа с плавающей точкой следует проверять не точное равенство, а разницу между этими числами, меньше ли она некого выбранной малого порога.
Следует также учитывать, что арифметические операции над числами с плавающей запятой выполняются существенно медленнее, чем над целыми.
Пример
float myfloat; float sensorCalbrate = 1.117;
Синтаксис
float var = val;
- var — имя переменной
- val — присваиваемое значение
Пример использования в коде
int x; int y; float z; x = 1; y = x / 2; // y теперь равен 0, тип int не может хранить дробные числа z = (float)x / 2.0; // z равна .5 (следует использовать 2.0, а не 2)