Тип данных для чисел с плавающей точкой (чисел с десятичным разделителем). Числа с плавающей точкой часто используются для представления аналоговых или непрерывных величин, поскольку позволяют описать их более точно, чем целые числа. Числа с плавающей точкой представляют собой 32 бита (4 байта) информации и могут достигать огромных значений от -3.4028235E+38 до 3.4028235E+38.
Точность дробных чисел типа float составляет 6-7 десятичных знаков. Здесь имеется ввиду общее количество цифр, а не количество знаков после запятой. В отличие от других платформ, где более высокой точности можно добиться за счет использования типа double (до 15 знаков), в Ардуино тип double имеет такую же размерность, как и float.
Следует иметь ввиду, что числа с плавающей точкой не являются точными, что может приводить к неожиданным результатам при их сравнении. Например, 6.0 / 3.0 может не равняться 2.0. Поэтому, вместо сравнения двух чисел следует проверять, является ли абсолютное значение их разности меньше некоторого небольшого значения.
Помимо этого, математические операции с дробными числами осуществляются гораздо медленнее, чем операции с целыми числами. Поэтому в некоторых ситуациях их следует избегать, например, в циклах, внутри которых осуществляются критичные ко времени функции. С целью повышения производительности программисты часто идут на увеличение программного кода для того, чтобы преобразовать дробные вычисления к целочисленным.
float myfloat; float sensorCalbrate = 1.117;
float myfloat; float sensorCalbrate = 1.117; |
int x; int y; float z; x = 1; y = x / 2; // y содержит 0, т.к. целые типы не могут хранить дробную часть числа z = (float)x / 2.0; // z содержит .5 (необходимо использовать 2.0, а не 2)
int x; int y; float z;
x = 1; y = x / 2; // y содержит 0, т.к. целые типы не могут хранить дробную часть числа z = (float)x / 2.0; // z содержит .5 (необходимо использовать 2.0, а не 2) |
all-arduino.ru
Арифметические операции включают сложение, вычитание, умножение и деление. Они возвращают сумму, разность, произведение или частное (соответственно) двух операндов.
y = y + 3; x = x – 7; i = j * 6;
r = r / 5;
Операция управляется используемым типом данных операндов, так что, например, 9/4 даѐт 2 вместо 2.25, поскольку 9 и 4 имеют тип int и не могут использовать десятичную точку. Это также означает, что операция может вызвать переполнение, если результат больше, чем может храниться в данном типе.
Если используются операнды разного типа, то для расчѐтов используется больший тип. Например, если одно из чисел (операндов) типа float, а второе целое, то для вычислений используется тип с плавающей точкой.
Выбирайте типы переменных достаточные для хранения результатов ваших вычислений. Прикиньте, в какой точке ваша переменная переполнится, а также, что случится в другом направлении, то есть, (0-1) или (0- -32768). Для вычислений, требующих дробей, используйте переменные типа float, но остерегайтесь их недостатков: большой размер и маленькая скорость вычислений.
Примечание: Используйте оператор приведения типа (нзвание типа) для округления, то есть, (int)myFloat – для преобразования переменной одного типа в другой «на лету». Например, i = (int) 3.6 – поместит в i значение 3.
смешанное присваивание
Смешанное присваивание сочетает арифметические операции с операциями присваивания. Чаще всего встречается в цикле for, который описан ниже. Наиболее общее смешанное присваивание включает:
x ++ // то же, что x = x + 1, или увеличение x на +1 x — // то же, что x = x – 1, или уменьшение x на -1 x += y // то же, что x = x + y, или увеличение x на +y x -= y // то же, что x = x – y, или уменьшение x на -y x *= y // то же, что x = x * y, или умножение x на y
x /= y // то же, что x = x / y, или деление x на y
Примечание: Например, x *= 3 утроит старое значение x и присвоит полученный результат x.
операторы сравнения
Сравнения одной переменной или константы с другой используются в выражении для if, чтобы проверить истинность заданного условия. В примерах на следующих страницах ?? используется для обозначения любого из следующих условий:
x == y // x равно y
x != y // x не равно y
x < y // x меньше, чем y x > y // x больше, чем y
x <= y // x меньше, чем или равно y x >= y // x больше, чем или равно y
логические операторы
Логические операторы, чаще всего, это способ сравнить два выражения и вернуть ИСТИНА или ЛОЖЬ, в зависимости от оператора. Есть три логических оператора: AND, OR и NOT, часто используемые в конструкциях if:
Logical AND:
if (x > 0 && x < 5) // true, только если оба
// выражения true
Logical OR:
if (x > 0 || y > 0) // true, если любое из
// выражений true
Logical NOT:
if (!x > 0) // true, если только
// выражение false
Источник: Гололобов В. – С чего начинаются роботы. О проекте Arduino для школьников (и не только) – 2011
nauchebe.net
Если отображение ненужных разрядов вызывает появление знаков ######, или если микроскопическая точность не нужна, измените формат ячеек таким образом, чтобы отображались только необходимые десятичные разряды.
Или если вы хотите округлить число до ближайшего крупного разряда, например, тысячной, сотой, десятой или единицы, используйте функцию в формуле.
С помощью кнопки
Выделите ячейки, которые нужно отформатировать.
На вкладке Главная выберите команду Увеличить разрядность или Уменьшить разрядность, чтобы отобразить больше или меньше цифр после запятой.
С помощью встроенного числового формата
На вкладке Главная в группе Число щелкните стрелку рядом со списком числовых форматов и выберите пункт Другие числовые форматы.
В списке Категория выберите значение Денежный, Финансовый, Процентный или Экспоненциальный в зависимости от типа ваших данных.
В поле Число десятичных знаков введите число знаков после запятой, которые вы хотите отображать.
Округлите число до необходимого количества цифр с помощью функции ОКРУГЛ. Эта функция имеет только два аргумента (аргументы — это части данных, необходимые для выполнения формулы).
Первый аргумент — это число, которое необходимо округлить. Он может быть ссылкой на ячейку или числом.
Второй аргумент — это количество цифр, до которого необходимо округлить число.
Чтобы округлить до ближайшей тысяч и
Введите =ОКРУГЛ(A1;-3), что равно 1000
Число 823,7825 ближе к 1000, чем к 0 (0 кратно 1000 )
В этом случае используется отрицательное число, поскольку округление должно состоятся влево от запятой. Такое же число применяется в следующих двух формулах, которые округляют до сотен и десятков.
Чтобы округлить до ближайших сотен
Введите =ОКРУГЛ(A1;-2), что равно 800
Число 800 ближе к 823,7825, чем к 900. Наверное, теперь вам все понятно.
Чтобы округлить до ближайших десятков
Чтобы округлить до ближайших единиц
Введите =ОКРУГЛ(A1;0), что равно 824
Используйте ноль для округления числа до ближайшей единицы.
Чтобы округлить до ближайших десятых
Введите =ОКРУГЛ(A1;1), что равно 823,8
В этом случает для округления числа до необходимого количества разрядов используйте положительное число. То же самое касается двух следующих формул, которые округляют до сотых и тысячных.
Чтобы округлить до ближайших сотых
Чтобы округлить до ближайших тысячных
Округлите число в большую сторону с помощью функции ОКРУГЛВВЕРХ. Она работает точно так же, как функция ОКРУГЛ, за исключением того, что она всегда округляет число в большую сторону. Например, если необходимо округлить число 3,2 до ноля разрядов:
Округлите число вниз с помощью функции ОКРУГЛВНИЗ. Она работает точно так же, как функция ОКРУГЛ, за исключением того, что она всегда округляет число в меньшую сторону. Например, необходимо округлить число 3,14159 до трех разрядов:
=ОКРУГЛВНИЗ(3,14159;3), что равно 3,141
Стандартный десятичный разделитель для чисел можно настроить в параметрах Excel.
Щелкните Параметры (в Excel 2010–2016) или нажмите кнопку Microsoft Office и выберите Параметры Excel (в Excel 2007).
В категории Расширенные параметры нужно выбрать пункт Параметры правки, а затем установить флажок Автоматическая вставка десятичной запятой.
В поле Число знаков после запятой введите положительное число для количества цифр справа от запятой или отрицательное число для количества цифр слева от запятой.
Примечание: Например, если ввести 3 в поле Число знаков после запятой, а затем — 2834 в ячейке, то значение будет равно 2,834. Если ввести –3 в поле Число знаков после запятой, а затем — 283 в ячейке, то значение будет равно 283000.
Нажмите кнопку ОК.
В строке состояния будет отображаться индикатор Фиксированный десятичный формат.
Выберите ячейку на листе и введите нужное число.
Примечание: Установка флажка Фиксированный десятичный формат не влияет на уже введенные данные.
Чтобы не использовать для числа параметр «Фиксированный десятичный формат», при его вводе добавьте десятичную запятую.
Чтобы удалить десятичные запятые из чисел, введенных с использованием фиксированного десятичного формата, сделайте следующее:
Щелкните Параметры (в Excel 2010–2016) или нажмите кнопку Microsoft Office и выберите Параметры Excel (в Excel 2007).
В категории Расширенные параметры в разделе Параметры правки снимите флажок Автоматическая вставка десятичной запятой.
В пустой ячейке введите число, соответствующее числу десятичных знаков, которое вы хотите удалить, например 10, 100 или 1000.
Например, введите 100 в ячейке, если числа содержат два десятичных знака и вы хотите преобразовать их в целые числа.
На вкладке Главная в группе Буфер обмена нажмите кнопку Копировать (или нажмите клавиши CTRL+C).
Выделите на листе ячейки, содержащие числа с десятичными разрядами, которые вы хотите изменить.
На вкладке Главная в группе Буфер обмена щелкните стрелку под кнопкой Вставить и выберите команду Специальная вставка.
В диалоговом окне Специальная вставка в разделе «Операция» выберите Умножить.
Вы всегда можете задать вопрос специалисту Excel Tech Community, попросить помощи в сообществе Answers community, а также предложить новую функцию или улучшение на веб-сайте Excel User Voice.
Округление числа
Почему число округляется?
support.office.com