Тип float | Microsoft Learn
Twitter LinkedIn Facebook Адрес электронной почты- Статья
Числа с плавающей запятой используют формат IEEE (Института инженеров по электротехнике и электронике).
Можно объявить переменные в качестве типа float или double в зависимости от нужд приложения. Основные различия между двумя типами значения заключаются в представляемой ими значимости, требуемых ресурсах хранения и диапазоне. В следующей таблице показана связь между значимостью и требованиями к хранению.
Типы с плавающей запятой
Type | Значимые цифры | Число байтов |
---|---|---|
float | 6–7 | 4 |
double | 15–16 | 8 |
Переменные с плавающей запятой представлены мантиссой, которая содержит значение числа, и экспонентой, которая содержит порядок возрастания числа.
В следующей таблице показано количество битов, выделенных мантиссе и экспоненте для каждого типа с плавающей запятой. Наиболее значимый бит любого типа float или double — всегда бит знака. Если он равен 1, число считается отрицательным; в противном случае — положительным.
Длина экспонент и мантисс
Type | Длина экспоненты | Длина мантиссы |
---|---|---|
float | 8 бит | 23 бита |
double | 11 бит | 52 бита |
Поскольку экспоненты хранятся в форме без знака, экспоненты смещены на половину своего возможного значения. Для типа float смещение составляет 127; для типа double это 1023. Можно вычислить фактическое значение экспоненты, вычтя значение смещения из значения экспоненты.
Мантисса хранится в виде бинарной доли, которая больше или равна 1 и меньше 2. Для типов float и double в мантиссе подразумевается наличие начального 1 в наиболее значимой битовой позиции, поэтому фактически длина мантисс составляет 24 и 53 бит соответственно, даже если наиболее значимый бит никогда не хранится в памяти.
Вместо только что описанного метода хранения пакет значений с плавающей запятой может хранить двоичные числа с плавающей запятой как денормализованные числа. Денормализованные числа — это ненулевые числа с плавающей запятой и зарезервированными значениями экспонент, в которых наиболее значимый бит мантиссы равен 0. Используя денормализованный формат, можно расширить диапазон числа с плавающей запятой в ущерб точности. Невозможно контролировать, в какой форме будет представлено число с плавающей запятой — нормализованной или денормализованной. Пакет значений с плавающей запятой определяет представление. В пакете значений с плавающей запятой никогда не используется денормализованная форма. Исключение составляют случаи, когда экспонента становится меньше, чем минимальное значение, которое может быть представлено в нормализованной форме.
В следующей таблице показаны минимальное и максимальное значения, которое можно сохранить в переменных каждого типа с плавающей запятой. Значения, указанные в этой таблице, применяются только к нормализованным числам с плавающей запятой; денормализованные числа с плавающей запятой имеют меньшее минимальное значение.
Диапазон типов с плавающей запятой
Type | Минимальное значение | Максимальное значение |
---|---|---|
плавающее | 1,175494351 E – 38 | 3,402823466 E + 38 |
double | 2,2250738585072014 E – 308 | 1,7976931348623158 E + 308 |
Если точность менее важна, чем размер хранимых данных, имеет смысл использовать тип float для переменных с плавающей запятой. И наоборот, если точность — наиболее важный критерий, используйте тип double.
Уровень переменных с плавающей запятой можно повысить до типа большей значимости (преобразование типа float в тип double). Повышение уровня часто происходит при выполнении арифметических действий с переменными плавающего типа. Это арифметическое действие всегда выполняется на том же уровне точности, что и переменная с наивысшим уровнем точности. Например, проанализируйте объявления следующих типов.
float f_short; double f_long; long double f_longer; f_short = f_short * f_long;
В предыдущем примере уровень переменной f_short
повышается до типа double, а затем переменная умножается на f_long
; затем результат округляется до типа float и присваивается объекту f_short
.
В следующем примере (с использованием объявлений из предыдущего примера) арифметическая операция выполняется на уровне точности переменной типа float (32-разрядной). Уровень результата затем повышается до уровня double.
f_longer = f_short * f_short;
Хранение базовых типов
Типы данных в Python — Робикс кружок робототехники
Главная › База знаний › Программирование › Python › Числовые типы данных в Python: integer, float
Переменные
Любые данные хранятся в ячейках памяти компьютера. Когда мы вводим число, оно помещается в какую-либо ячейку памяти. Возникают вопросы: Куда именно? Как впоследствии обращаться к этим данными?
В программе данные связываются с каким-либо именем. В дальнейшем обращение к ним возможно по этому имени-переменной.
Термин «переменная» обозначает, что ее сущность может меняться, она непостоянна.
В программе на языке Python, как и на большинстве других языков, связь между данными и переменными устанавливается с помощью знака = (знак равно). Данная операция называется присваиванием.
Например, выражение, представленное ниже, означает, что на объект, представляющий собой число 4, находящееся в определенной области памяти, теперь ссылается переменная a.
Имена переменных могут быть любыми. Однако есть несколько общих правил их написания:
- Желательно давать переменным осмысленные имена, говорящие о назначении данных, на которые они ссылаются.
- Имя переменной не должно совпадать с командами языка (зарезервированными ключевыми словами).
- Имя переменной должно начинаться с буквы или символа подчеркивания, но не с цифры.
- Имя переменной не должно содержать пробелы.
Чтобы узнать значение, на которое ссылается переменная, находясь в режиме интерпретатора, достаточно ее вызвать, то есть написать имя и нажать Enter.
Числовые типы данных
Напишите в консоли следующую команду и нажмите Enter:
>>> 1 + 1
В результате получим следующее:
При программировании мы чаще всего будем сталкиваться с такими числовыми типами данных (формализация информации), как целые числа и числа с плавающей точкой.
Целые числа (тип int) — это положительные и отрицательные целые числа, а также 0, например: 0, -1, 1, 1827 и т.д.
Числа с плавающей точкой (тип float) — это вещественные, числа (рациональные + иррациональные числа), например: 0, -1, 1, 1827, 0. 5, -0.76, 3.141592 (число пи) и т.д.
Операции
Операция — это выполнение каких-либо действий над данными (операндами). Действие выполняется оператором (сложение(+), умножение(*) и т.п. ). Результат операции зависит как от оператора, так и от операндов.
Изменение типа переменных
Давайте создадим две переменные A и B, которым присвоим некоторые значения:
>>> A = 10 >>> B = 1.24
В зависимости от введенной информации, Python самостоятельно определяет тип переменно. Чтобы посмотреть типы заданных переменных, воспользуемся функцией type(), для этого введем следующую команду:
>>> type(A)
После ввода на экране появится тип переменной А, в нашем случае это будет целое число, то есть на экране мы увидим следующее:
>>> type(A) <class 'int'>
Проведем ту же операцию со второй переменой, на экране увидим следующее:
>>> type(B) <class 'float'>
Попробуем сложить переменные разных типов данных и выясним, к какому типу относится полученный результат:
>>> С = A + B >>> type(С) <class 'float'>
Как можете заметить, в итоге мы получили переменную float.
Любые математические действия можно выполнять только над одинаковыми типами данных, т.е. либо все float, либо все int и т.д.
Но тогда как мы сейчас смогли это сделать? Python самостоятельно производит перевод переменных в нужный тип данных. Вы можете самостоятельно произвести данный переход с помощью функций int(), float():
>>> type(A) <class 'int'> >>> A = float(A) >>> type(A) <class 'float'> >>> type(B) <class 'float'> >>> B = int(B) >>> type(B) <class 'int'> >>> A 10.0 >>> B 1
Как видите, значение B было округлено. Рассмотрим подробнее округление на функции int(), которая переводит вещественное число в целое:
>>> A1 = 0.1 >>> A2 = 0.4 >>> A3 = 0.7 >>> A4 = 1.1 >>> A1 = int(A1) >>> A2 = int(A2) >>> A3 = int(A3) >>> A4 = int(A4) >>> A1 0 >>> A2 0 >>> A3 0 >>> A4 1
Как можно заметить, округление происходит до ближайшего целого числа по направлению в сторону нуля, то есть в меньшую сторону.
Основные математические операции в Python
- Cложение (+) используется для получения суммы (в отношении чисел), было нами рассмотрено выше.
- Вычитание (-) — операция, противоположная сложению.
- Умножение(*) используется для получения произведения сомножителей.
>>> type(2 * 2) <class 'int'> >>> type(0.1 * 2) <class 'float'> >>> type(0.2 * 5) <class 'float'>
- Возведение в степень (**) используется для возведения числа в степень, то есть умножение числа на само себя столько раз, сколько указано в степени.
>>> 2 ** 3 8 >>> 2 ** 4 16
- Деление (/) — действие, обратное умножению, используется для получения частного
>>> 4 / 2 2.0 >>> type(4/2) <class 'float'> >>> 2 / 4 0.5
Даже если делимое и делитель являются целыми числами и делитель содержится в делимом целое число раз, то результат деления будет float.
- Целочисленное деление (//) нужно для получения целочисленного результата деления, то есть при данной операции отбрасывается дробная часть числа.
>>> 4 // 2 2 >>> type(4 / 2) <class 'float'> >>> 2//4 0 >>> type(2 // 4) <class 'int'>
- Получение остатка от деления (%). В результате данной операции Вы получаете то, что осталось от деления, то есть вы получаете то, что невозможно дальше делить. Например, в первом случае 4 делится без остатка — в 4 две 2, во втором случае 2 не разделить на 4, оно сразу уходит в остаток, в третьем случае 7 содержит две 3 (6), в остаток уходит 7 — 6 = 1.
>>> 4 % 2 0 >>> 2 % 4 2 >>> 7 % 3 1
- Модуль числа (abs()) используется для получения модуля числа, то есть отбрасывается знак перед числом
>>> abs(-0.1) 0.1 >>> abs(0) 0 >>> abs(-283) 283 >>> abs(45) 45
- Округление (round()) — данная операция округляет число до ближайшего целого числа, формат int.
>>> round(0.5) 0 >>> round(0.6) 1 >>> round(1.1) 1 >>> round(1.5) 2 >>> round(1.4) 1
Курсы Робикс, в которых изучается этот материал.
- Программирование на Python в Minecraft
- Duckietown робот с системой Автопилота
Сохраните или поделитесь
Что такое поплавок? (Информатика)
Что означает Float?
В информатике число с плавающей запятой — это тип данных, состоящий из числа, которое не является целым числом, поскольку оно включает дробь, представленную в десятичном формате.
Реклама
Одним из наиболее распространенных определений, данных экспертами, является то, что число с плавающей запятой «имеет числа по обе стороны от десятичной дроби». Однако может быть проще сказать, что число с плавающей запятой включает десятичные дроби, а целое число — нет.
Некоторые отмечают, что тип данных с плавающей запятой используется в компьютерном программировании, когда требуется большая точность, чем могут обеспечить целые числа.
Techopedia объясняет Float
С первых дней компьютерного программирования числа с плавающей запятой обеспечивали возможность хранения чисел, включая десятичные дроби, в качестве типов данных. Понимание природы числа с плавающей запятой жизненно важно при преобразовании типов, при объявлении переменных и при использовании переменных в кодовой базе.
Неправильная обработка типов данных может привести к ошибкам.
Ранние примеры использования float включают FORTRAN, где тип данных float назывался «двойной точностью».
Был также «настоящий» тип данных, указывающий на число с плавающей запятой одинарной точности.
Еще одним ранним языком, использующим float, был COBOL, который до сих пор широко используется во многих учреждениях просто из-за неприязни к миграции устаревших систем. В статье на Medium, рассказывающей о широком использовании COBOL, делается отличный вывод о том, насколько ценными могут быть типы данных с плавающей запятой в программном обеспечении.
В качестве прямого примера давайте подумаем о программе данных IRS и о том, будет ли она использовать число с плавающей запятой или нет.
Если требования IRS не требуют представления части доллара, вполне достаточно целочисленного формата. Все переменные могут быть целыми числами, и можно избежать представления с плавающей запятой, что повысит эффективность кода.
С другой стороны, если программе нужно было бы сообщать часть доллара, программистам нужно было бы объявить переменную как число с плавающей запятой и хранить как доллары, так и центы в десятичном формате. Например, переменная с плавающей запятой для $10,50 будет объявлена с содержимым 10,5.
Теперь проверьте, неверны ли типы данных. Если программа пытается сохранить 10,5 как целое число, она может содержать «10» или выдать ошибку. Параметры должны быть разработаны в соответствии с реальными данными, которые будут развернуты, и процедурами, которые будут реализованы в системе.
На протяжении многих лет компьютерного программирования использование чисел с плавающей запятой и других типов данных было оптимизировано для различных видов использования памяти. Однако, возвращаясь к статье Марианны Беллотти на языке COBOL, мы по-прежнему считаем, что размещение переменных с плавающей запятой требует работы и может привести к разного рода дебатам о наилучшем языке программирования или среде для данной системы.
Во времена контейнеров и виртуальных машин кажется крайне нелогичным, что кодовая база, работающая в этих средах, не может обрабатывать десятичные числа, но программистам придется делать оценки и принимать правильные решения в:
- Проектирование новых систем.
- Миграция устаревших систем.
- Или при выполнении текущего обслуживания систем, использующих этот тип данных.
Рекламные объявления
Тип данных с плавающей запятой – Основы программирования
Кеннет Лерой Басби и Дэйв Брауншвейг
Обзор
Тип данных с плавающей запятой использует формульное представление действительных чисел в качестве приближения, чтобы поддерживать компромисс между диапазоном и точностью. По этой причине вычисления с плавающей запятой часто встречаются в системах, которые содержат очень маленькие и очень большие действительные числа, требующие быстрого времени обработки. Число, как правило, представляется приблизительно фиксированным числом значащих цифр и масштабируется с использованием показателя степени в некотором фиксированном основании. [1]
Обсуждение
Тип данных с плавающей запятой — это семейство типов данных, которые действуют одинаково и отличаются только размером своих доменов (допустимые значения). Семейство типов данных с плавающей запятой представляет числовые значения с дробными частями. Технически они хранятся в виде двух целочисленных значений: мантисса и показатель степени . Семейство с плавающей запятой имеет одинаковые атрибуты и действует или ведет себя одинаково во всех языках программирования. Они всегда могут хранить отрицательные или положительные значения, поэтому они всегда подписаны; в отличие от целочисленного типа данных, который может быть беззнаковым. домен для типов данных с плавающей запятой различается, поскольку они могут представлять очень большие или очень маленькие числа. Вместо того, чтобы говорить о фактических значениях, мы упомянем точность . Чем больше байт памяти, тем больше мантисса и показатель степени, а значит, больше точность.
Язык | Зарезервированное слово | Размер | Точность | Диапазон |
---|---|---|---|---|
С++ | поплавок | 32 бита / 4 байта | 7 десятичных цифр | ±3,40282347E+38 |
С++ | двойной | 64 бита / 8 байт | 15 десятичных цифр | ±1,79769313486231570E+308 |
С# | поплавок | 32 бита / 4 байта | 7 десятичных цифр | ±3,40282347E+38 |
С# | двойной | 32 бита / 4 байта | 15 десятичных цифр | ±1,79769313486231570E+308 |
Ява | поплавок | 32 бита / 4 байта | 7 десятичных цифр | ±3,40282347E+38 |
Ява | двойной | 32 бита / 4 байта | 15 десятичных цифр | ±1,79769313486231570E+308 |
JavaScript | Номер | 64 бита / 8 байт | 15 десятичных цифр | ±1,79769313486231570E+308 |
Питон | с плавающей запятой() | 64 бита / 8 байт | 15 десятичных цифр | ±1,79769313486231570E+308 |
Свифт | Поплавок | 32 бита / 4 байта | 7 десятичных цифр | ±3,40282347E+38 |
Свифт | Двойной | 64 бита / 8 байт | 15 десятичных цифр | ±1,79769313486231570E+308 |
Основные термины
- двойной
- Наиболее часто используемый тип данных семейства с плавающей запятой.