API CInt - LIHACHTETAN/ClassicUO-BadNewbie-BasicIDE GitHub Wiki
CInt
Оглавление · Алфавитный указатель · BASIC built-ins
ClassicUO • Runtime API
Округляет до ближайшего целого, ровно половину — от нуля.
Точный синтаксис
CInt(value:Any) -> Integer
Выберите одну из зарегистрированных форм. Параметры передаются позиционно. Any означает значение BASIC с преобразованием внутри команды; Unit — отсутствие возвращаемого значения.
Параметры
value— Число Integer/Decimal или числовая строка с точкой и необязательной экспонентой, например "-1.25e2". Преобразование не зависит от языка интерфейса. Нераспознанная строка, Unit, Array и Object преобразуются в 0. Для пользовательского ввода сначала проверяйте IsNumeric. Используйте конечные значения, результат которых находится в диапазоне -2147483648..2147483647.
Возвращает
Integer — результат преобразования в знаковое 32-битное целое. Округляет до ближайшего целого, ровно половину — от нуля. Нечисловой текст даёт 0. Значения за пределами диапазона и NaN/Infinity не подходят для этого преобразования.
Поведение
- Вычисляется локально, без ожидания ответа сервера.
- Decimal в этом языке хранится как double: возможна погрешность двоичной арифметики. Это не десятичный финансовый тип .NET decimal.
Примеры
Пример 1. Положительная половина
# Положительная половина
#
# Округляет до ближайшего целого, ровно половину — от нуля.
#
# Integer — результат преобразования в знаковое 32-битное целое. Округляет до ближайшего целого,
# ровно половину — от нуля. Нечисловой текст даёт 0. Значения за пределами диапазона и
# NaN/Infinity не подходят для этого преобразования.
SUB Main()
# value=2.5 — положительное дробное число.
# Ожидаемый результат: 3. value сохраняет возвращённое значение; Print только выводит его.
VAR value = CInt(2.5)
UO.Print(STR(value))
END SUB
Разбор параметров и выполнения:
- value=2.5 — положительное дробное число.
- Ожидаемый результат: 3. value сохраняет возвращённое значение; Print только выводит его.
Пример 2. Отрицательная половина
# Отрицательная половина
#
# Округляет до ближайшего целого, ровно половину — от нуля.
#
# Integer — результат преобразования в знаковое 32-битное целое. Округляет до ближайшего целого,
# ровно половину — от нуля. Нечисловой текст даёт 0. Значения за пределами диапазона и
# NaN/Infinity не подходят для этого преобразования.
SUB Main()
# value=-2.5 — отрицательное дробное число.
# Ожидаемый результат: -3. value сохраняет возвращённое значение; Print только выводит его.
VAR value = CInt(-2.5)
UO.Print(STR(value))
END SUB
Разбор параметров и выполнения:
- value=-2.5 — отрицательное дробное число.
- Ожидаемый результат: -3. value сохраняет возвращённое значение; Print только выводит его.
Пример 3. Проверить текст перед преобразованием
# Проверить текст перед преобразованием
#
# Округляет до ближайшего целого, ровно половину — от нуля.
#
# Integer — результат преобразования в знаковое 32-битное целое. Округляет до ближайшего целого,
# ровно половину — от нуля. Нечисловой текст даёт 0. Значения за пределами диапазона и
# NaN/Infinity не подходят для этого преобразования.
SUB Main()
# text — входная строка. IsNumeric проверяет распознавание числовой записи.
# amount=13. IsNumeric не проверяет диапазон int32; здесь значение заведомо в его пределах.
VAR text = '12.6'
IF IsNumeric(text) THEN
VAR amount = CInt(text)
UO.Print(STR(amount))
ELSE
UO.Print('Numeric text required')
END IF
END SUB
Разбор параметров и выполнения:
- text — входная строка. IsNumeric проверяет распознавание числовой записи.
- amount=13. IsNumeric не проверяет диапазон int32; здесь значение заведомо в его пределах.