0Pricing
C++ Academy · Урок

Целочисленные типы и типы с плавающей точкой

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

«Целочисленные типы и типы с плавающей точкой» — бесплатный урок C++ Academy на CoddyKit. Это урок 1 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения C++ Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс C++ Academy содержит 4 уроков всего.

Два мира чисел

В C++ есть два семейства числовых типов: целочисленные (без дробей, точные) и с плавающей точкой (приближённые, с дробной частью). Выбирайте подходящее семейство для конкретной задачи.

Целочисленные типы

Встроенные целочисленные типы и их типичные размеры в 64-разрядных системах:

  • char — 1 байт
  • short — 2 байта
  • int — 4 байта
  • long — 4 или 8 байт
  • long long — 8 байт

Знаковые и беззнаковые типы

Добавьте unsigned, чтобы исключить отрицательный диапазон. Беззнаковая арифметика зацикливается по модулю 2^N — иногда это полезно, но часто приводит к трудноуловимым ошибкам.

unsigned int u = 0;
u -= 1;  // wraps around to 4,294,967,295

Целые числа фиксированной ширины

Используйте типы из <cstdint>, когда нужны точные размеры — например, для протоколов, файловых форматов или переносимости между платформами.

#include <cstdint>
int8_t   tiny  = 100;
int32_t  word  = 100000;
int64_t  big   = 1LL << 40;
uint64_t huge  = 18446744073709551615ULL;

Типы с плавающей точкой

Три типа с плавающей точкой, упорядоченные по возрастанию точности:

  • float — 32-разрядный, около 7 десятичных цифр
  • double — 64-разрядный, около 15 десятичных цифр
  • long double — обычно 80 или 128 разрядов

Формат IEEE 754

Числа с плавающей точкой соответствуют стандарту IEEE 754: знак, порядок, мантисса. Они могут представлять очень большие и очень малые значения, но не всегда точно.

Проблемы чисел с плавающей точкой

Большинство десятичных чисел нельзя точно представить в двоичной системе. 0.1 + 0.2 не равно точно 0.3.

double sum = 0.1 + 0.2;
std::cout << (sum == 0.3);   // false on most systems
std::cout << sum;            // 0.3 but printed approximately

Безопасное сравнение чисел с плавающей точкой

Никогда не сравнивайте числа с плавающей точкой с помощью ==. Сравнивайте их с учётом небольшой допустимой погрешности (эпсилона).

bool approxEqual(double a, double b, double eps = 1e-9) {
    return std::abs(a - b) < eps;
}

Специальные значения с плавающей точкой

У чисел с плавающей точкой есть три специальных значения: NaN (не число), +inf и -inf. Для проверки используйте предикаты из <cmath>.

#include <cmath>
double x = std::sqrt(-1.0);
if (std::isnan(x)) std::cout << "Not a number";
if (std::isinf(x)) std::cout << "Infinity";

Когда что использовать

Выбирайте тип в зависимости от предметной области:

  • Счётчики и индексы → int или size_t
  • Научные или графические вычисления → double
  • Деньги → никогда не используйте double! Используйте целые числа в наименьших единицах (центы) или библиотеку для десятичных чисел

Размеры типов зависят от платформы

Стандарт гарантирует только минимальные размеры. int может иметь ширину 16, 32 или 64 бита. Для переносимости используйте типы фиксированной ширины из <cstdint> в структурах данных.

Быстрая проверка

Какой тип следует использовать для точного представления денежных значений?

Итоги

Целые числа точны, а числа с плавающей точкой приблизительны. Выбирайте int или целые числа фиксированной ширины для счётчиков, double — для научных вычислений и никогда не используйте числа с плавающей точкой для денег. Сравнивайте их с учётом допустимой погрешности, но никогда не используйте ==.

Часто задаваемые вопросы

Урок «Целочисленные типы и типы с плавающей точкой» бесплатный?

Да — полный текст урока «Целочисленные типы и типы с плавающей точкой» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс C++ Academy, подпишись на CoddyKit PRO. Курс C++ Academy содержит 4 уроков всего.

Чему я научусь в уроке «Целочисленные типы и типы с плавающей точкой»?

Выбирайте подходящий числовой тип, понимая компромиссы между размером, диапазоном и точностью. Ты практикуешь C++ Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать C++ Academy?

Предыдущий опыт не требуется. C++ Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 4.

Сколько времени занимает урок «Целочисленные типы и типы с плавающей точкой»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке C++ Academy?

Да. Каждый урок C++ Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Целочисленные типы и типы с плавающей точкой
  2. Заголовок cmath: pow, sqrt, abs, round
  3. Случайные числа с заголовком random
  4. Числовые ограничения и переполнение
← Назад к C++ Academy