Створення змінних Float і Double у 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

Ці типи даних часто називають типами даних з плаваючою комою. Числа називаються числами з плаваючою комою.

float fvar = 50,15;
подвійний двар = 50,0;

Порівняйте типи даних із плаваючою комою – float і double

Різниця між типом даних float і double полягає в точності кількості десяткових знаків.

Базуючись на специфікації VexOS – ARM 7, float може обробляти 6 або 7 місць, а double — 15 або 16.

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

напр

float fvar1 = 1,12345670;
float fvar2 = 1,12345678;

fval1 відрізняється від fvar2,

проти

float fvar1 = 1,123456780; 
float fvar2 = 1,123456781;

fval1 буде оцінено так само, як fvar2.

double: допускає до 17 знаків після коми з точністю.

напр

подвійний dvar1 = 1,12345678912345678;
подвійний двар2 = 1,12345678912345670;

dval1 відрізняється від dvar2,

проти

подвійний dvar1 = 1,123456789123456789;
подвійний двар2 = 1,123456789123456780;

dval1 буде оцінено так само, як dvar2.


Не використовуйте "подвійний", якщо вам не потрібна висока точність

Є дві причини, чому вам не слід використовувати "double", якщо вам не потрібна висока точність:

  1. Він займає 2X плаваючий тип.
  2. Він займає набагато вищу обчислювальну потужність.

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

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

Операція з подвійним числом є досить дорогою порівняно з float і набагато дорожчою, ніж «ціле число» через обчислення з плаваючою комою.

На основі стандарту 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 байт.

Так, напр

char aVal = 100;
int iVal = aVal; // неявне приведення

або

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

Застереження щодо неявного скорочення:

напр

Діаграма, що ілюструє особливості програмування робототехнічної системи V5, висвітлюючи ключові компоненти та з’єднання для ефективного програмування робота.

Іншою поширеною практикою є обмін int і float
float fVal = 5,486;
float fraction = fVal - (int)fVal; //це: 5,486 - 5

Застереження щодо неявного скорочення:

напр

int iVal = 50;
float 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: