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", якщо вам не потрібна висока точність:
- Він займає 2X плаваючий тип.
- Він займає набагато вищу обчислювальну потужність.
Відповідно до специфікації 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; // явне приведення.
Застереження щодо неявного скорочення:
напр
Іншою поширеною практикою є обмін 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