Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте Числа з Подвійною Точністю | Числові Типи Даних
Типи Даних у C++
Секція 2. Розділ 5
single

single

bookЧисла з Подвійною Точністю

Свайпніть щоб показати меню

Точність типу float (7 десяткових знаків) не завжди є достатньою. Але в C++ існує рішення: double. З точністю у 15 десяткових знаків цей тип значно точніший за float. Синтаксис використання double залишається незмінним:

double.

double.

copy
1
double num = 3.14159265359;

За замовчуванням cout виводить числа з плаваючою комою з точністю до 6 значущих цифр. Таким чином, різниця між float і double буде непомітною. Щоб встановити більшу точність, можна знову використати std::cout << std::setprecision(15); (це встановить точність до 15 значущих цифр).

Не забудьте підключити <iomanip>, щоб мати змогу використовувати std::setprecision().

main.cpp

main.cpp

copy
123456789101112131415
#include <iostream> #include <iomanip> int main() { float pi_float = 3.14159265358979; double pi_double = 3.14159265358979; std::cout << "float pi: " << pi_float << std::endl; std::cout << "double pi: " << pi_double << std::endl; std::cout << std::setprecision(15); std::cout << "float pi with setprecision: " << pi_float << std::endl; std::cout << "double pi with setprecision: " << pi_double << std::endl; }

Як досягається краща точність у double?

Він просто займає більше пам'яті. Тип float займає 4 байти, а double займає 8 байтів пам'яті.

Існує також тип long double. Його розмір варіюється від 8 байтів (як у double) до 16 байтів. Ви можете перевірити розмір long double на вашій системі за допомогою наступного коду:

sizeof.h

sizeof.h

copy
1
std::cout << sizeof(long double);

Крім того, слід додати L до значення, яке ви присвоюєте (інакше значення буде присвоєно з точністю типу double). Розгляньте приклад:

double.h

double.h

copy
1
long double pi = 3.141592653589793238462643L;
Note
Примітка

Якщо у виведенні з'явилися нулі, переконайтеся, що ви присвоїли значення саме так, як показано вище (1/3., 1/3.L).

Завдання

Swipe to start coding

Потрібно обчислити (1/3)², використовуючи різні типи даних. Для цього присвойте значення 1/3 змінним типу float, double та long double. Потім виведіть ці числа, помножені самі на себе.

  1. Ініціалізуйте змінну типу float значенням 1/3.;
  2. Ініціалізуйте змінну типу double значенням 1/3.;
  3. Ініціалізуйте змінну типу long double значенням 1/3.L.
    примітка: long double займає 16 байт пам'яті у нашій системі
  4. Встановіть точність виводу до 25 знаків після коми за допомогою setprecision(25);
  5. Виведіть усі ці значення, помножені самі на себе.

Рішення

Switch to desktopПерейдіть на комп'ютер для реальної практикиПродовжуйте з того місця, де ви зупинились, використовуючи один з наведених нижче варіантів
Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 2. Розділ 5
single

single

Запитати АІ

expand

Запитати АІ

ChatGPT

Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат

some-alt