Создание переменных с плавающей запятой и двойных переменных в VEXcode Pro V5

The VEX Visual Studio Code Extension has replaced VEXcode Pro V5, which is now end-of-life.

VEXcode Blocks and VEXcode Text remain actively developed and supported for all VEX platforms.

Типы, которые содержат числа с десятичными знаками – float, double

Эти типы данных часто называют типами данных с плавающей запятой. Числа называются числами с плавающей запятой.

поплавок фвар = 50,15;
двойной двар = 50,0;

Сравните типы данных с плавающей точкой – float и double

Разница между типами данных float и double заключается в точности количества десятичных знаков.

Согласно спецификации VexOS – ARM, float может обрабатывать 6 или 7 мест, а double — 15 или 16.

float: в текущей версии V5os контроллер, по-видимому, обеспечивает точность до 8 знаков после запятой.

например

поплавок fvar1 = 1,12345670;
с плавающей запятой fvar2 = 1,12345678;

fval1 отличается от fvar2,

против

поплавок fvar1 = 1,123456780; 
с плавающей запятой fvar2 = 1,123456781;

fval1 будет оцениваться так же, как fvar2.

double: обеспечивает точность до 17 десятичных знаков.

например

двойной dvar1 = 1,12345678912345678;
двойной dvar2 = 1,12345678912345670;

dval1 отличается от dvar2,

против

двойной dvar1 = 1,123456789123456789;
двойной dvar2 = 1,123456789123456780;

dval1 будет оцениваться так же, как и dvar2.


Не используйте «double», если вам не нужна высокая точность.

Есть две причины, по которым вам не следует использовать «double», если вам не нужна высокая точность:

  1. Он принимает тип 2X с плавающей запятой.
  2. Это требует гораздо большей вычислительной мощности.

Согласно спецификации VexOS – ARM 7, число с плавающей запятой может содержать 6 или 7 знаков, а двойное — 15 или 16. В любом случае не следует полагаться на точность последних цифр в типах double или float. Оно хранится совсем не так, как «int», из-за так называемого «вычисления с плавающей запятой» (которое выходит за рамки этой статьи).

Таким образом, вы можете потерять точность последних нескольких десятичных знаков.

Операция с двойным числом довольно затратна по сравнению с операциями с плавающей запятой и намного дороже, чем с целым числом, из-за так называемых вычислений с плавающей запятой.

Согласно стандарту IEEE, следующие параметры находятся в пределах более надежного диапазона.

Тип Наименьшее положительное значение Наибольшее положительное значение # Точность
плавать 10 -38 х 1,17549 10 38 х 3,40282 6 цифр
двойной 10 -308 или 2,22507 10 308 х 1,79769 15 цифр

Можно ли обменивать примитивные типы данных? - Кастинг

Возможен обмен типами данных. Эта техника называется «Кастинг». Хотя кастинг является довольно распространенной практикой, делайте это только в случае необходимости. 

Одной из самых распространенных практик является замена char и int.

Это связано с тем, что они оба представляют целочисленные значения с одним исключением: 

  • «int» содержит 4 байта (или 8 байт в некоторых компиляторах)
  • «char» содержит только 1 байт.

Итак, например

чар аВал = 100;
int iVal = aVal; // неявное приведение

или

int iVal = (char) aVal; // явное приведение.

Предупреждение о неявном усечении:

например

Схема, иллюстрирующая особенности программирования робототехнической системы V5, на которой выделены ключевые компоненты и соединения для эффективного программирования робота.

Другая распространенная практика — это обмен int и float.
плавающее значение fVal = 5,486;
дробь с плавающей запятой = fVal - (int)fVal; //да: 5.486 - 5

Предупреждение о неявном усечении:

например

интервал iVal = 50;
с плавающей запятой fVal = iVal / 100;

теперь fVal = 0,0, а НЕ 0,5.

Абсолютно нормально воспользоваться преимуществами неявного усечения, которое в некоторых сценариях часто является важной частью операций. Однако вам необходимо убедиться, что вы используете эту технику намеренно.

Если вы не хотите, чтобы неявное усечение имело место, вам необходимо выполнить явное приведение:

  • неявное приведение: float fVal = iVal / 100.0;
  • явное приведение: float fVal = (float) iVal / 100

For more information, help, and tips, check out the many resources at VEX Professional Development Plus

Last Updated: