Зміст курсу
Знайомство з C++
Знайомство з C++
Числові Типи Даних
Цілі числа
Тип даних int
може зберігати значення в діапазоні від 2,147,483,648 до 2,147,483,647.
main
#include <iostream> int main() { int goodNumber = 12; int tooLarge = 2147483648; std::cout << "Printing tooLarge: " << tooLarge << std::endl; std::cout << "Printing goodNumber: " << goodNumber << std::endl; }
Це відбувається тому, що коли ви оголошуєте змінну типу int
, вона виділяє рівно 4 байти пам'яті вашого комп'ютера. А числа вище 2147483647 (або нижче -2147483648) не поміщаються у ці 4 байти. На щастя, інші доступні типи даних можуть виділити вам більше (або менше) місця для ваших потреб. Ось таблиця:
Тип даних | Розмір | |
short | 2 байти | |
int | 4 байти | |
long | 8 байт |
Отже, ви можете використовувати long
для зберігання великих чисел (наприклад, населення світу). Ви також можете використовувати short
, якщо ви впевнені, що ваше число не вийде за межі діапазону від -32,768 до 32,767 (наприклад, для зберігання віку користувача). Використання short
займе менше місця.
main
#include <iostream> int main() { short age = 22; int likes = 143200; long population = 7900000000; std::cout << "Age: " << age << std::endl; std::cout << "Likes: " << likes << std::endl; std::cout << "World's population: " << population << std::endl; }
Зауважте.
Будьте обережні з типом даних, який ви обираєте. Якщо діапазон типу перевищено, компілятор C++ не скаже вам про це, і ви отримаєте неочікуване значення не знаючи, що щось не так.
Числа з плаваючою комою
Наведені вище типи даних призначені для зберігання цілих чисел. Якщо ми спробуємо присвоїти 1.6
одному з них, ось що ми отримаємо:
main
#include <iostream> int main() { int num = 1.6; std::cout << num << std::endl; }
Тип int
ігнорує десяткову частину числа. Така ж історія з short
або long
. Для зберігання чисел з плаваючою комою (десяткових) слід використовувати тип даних float
або double
.
Тип Даних | Розмір | |
float | 4 байти | |
double | 8 байтів |
Ось приклад використання double
для зберігання 1.6
.
main
#include <iostream> int main() { double num = 1.6; std::cout << num << std::endl; }
Зауважте.
Оскільки тип
float
має точність лише 7 цифр, число123.456789
вже виходить за межі його діапазону. Це може призвести до неточних результатів (як показано у прикладі нижче). Тому краще використовуватиdouble
за замовчуванням, якщо ви не впевнені, що точністьfloat
достатня.
main
#include <iostream> int main() { float floatNum = 123.45678; double doubleNum = 123.45678; std::cout << "using float:" << floatNum - 123 << std::endl; std::cout << "using double:" << doubleNum - 123 << std::endl; }
Очевидно, що ви можете використовувати float
або double
для зберігання цілих чисел, оскільки це десяткові числа з десятковою частиною, що дорівнює 0. Однак, як правило, якщо змінна зберігає значення, які можуть бути лише цілими числами (наприклад, населення або вподобання), слід використовувати short
/int
/long
.
main
#include <iostream> int main() { float price = 100; std::cout << "Price is: " << price << std::endl;; }
Дякуємо за ваш відгук!