0Pricing
Lua Academy · Урок

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

Узнайте, как Lua представляет числа.

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

Числа в Lua

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

Начиная с Lua 5.3 числа бывают двух видов: целые числа и числа с плавающей точкой.

Для начала выведем несколько чисел.

print(10)
print(3.14)

Что такое целое число

Целое число — это число без дробной части, например 0, 42 или -7.

Если записать число без десятичной точки, Lua считает его целым числом.

  • 5 — целое число
  • -100 — целое число
local apples = 5
print(apples)

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

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

Любое число, записанное с десятичной точкой, является числом с плавающей точкой, даже 2.0.

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

local price = 2.5
print(price)

Проверка подтипа

Целые числа и числа с плавающей точкой имеют общее имя типа "number". Чтобы узнать подтип значения, используйте math.type().

Функция возвращает строку "integer", "float" или nil, если значение не является числом.

print(math.type(10))
print(math.type(3.14))

type() и math.type()

Функция type() сообщает общий тип. Для любого числа она возвращает "number".

Функция math.type() определяет более конкретный подтип: целое число или число с плавающей точкой. Выбирайте подходящий инструмент для каждой задачи.

print(type(7))
print(math.type(7))

Деление всегда даёт число с плавающей точкой

Обычный оператор деления / всегда даёт число с плавающей точкой, даже если числа делятся без остатка.

Так, 10 / 2 даёт 5.0, а не 5. Обратите внимание на .0 в результате.

print(10 / 2)
print(math.type(10 / 2))

Целочисленное деление

Используйте оператор целочисленного деления //, когда нужен результат в виде целого числа. Он делит и округляет вниз, в сторону минус бесконечности.

Если оба операнда — целые числа, результат также является целым числом.

print(7 // 2)
print(math.type(7 // 2))

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

Число с плавающей точкой тоже может хранить целое значение. 4.0 равно 4 по значению, но его подтип по-прежнему — float.

Lua считает 4 == 4.0 равным true, потому что числовые значения совпадают.

print(4 == 4.0)
print(math.type(4.0))

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

Вы можете преобразовать число с плавающей точкой в целое с помощью math.tointeger(). Функция возвращает целое число, если у числа с плавающей точкой нет дробной части, и nil в противном случае.

Это удобно, когда интерфейсу требуется настоящее целое число.

print(math.tointeger(8.0))
print(math.tointeger(8.5))

Экспоненциальная запись

Lua позволяет записывать очень большие или очень маленькие числа с плавающей точкой в экспоненциальной форме с помощью e.

1e3 означает 1 times 10 to the power 3, то есть 1000.0. Результат всегда является числом с плавающей точкой.

print(1e3)
print(2.5e-2)

Пределы целых чисел

Целые числа Lua хранятся в 64 битах, поэтому у них огромный, но конечный диапазон. Константы math.maxinteger и math.mininteger показывают его границы.

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

print(math.maxinteger)
print(math.mininteger)

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

Проверьте, что Вы узнали о целых числах и числах с плавающей точкой.

Итоги

Вы узнали, что числа Lua имеют два подтипа: целые числа и числа с плавающей точкой.

Используйте math.type(), чтобы различать их; / всегда возвращает число с плавающей точкой, а // может сохранить целочисленный результат. math.tointeger() выполняет преобразование, если это возможно.

Далее Вы подробно изучите арифметические операторы.

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

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

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

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

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

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

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

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

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

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

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

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

  1. Целые числа и числа с плавающей точкой
  2. Арифметические операторы
  3. Библиотека math
  4. Форматирование чисел
← Назад к Lua Academy