API IsNumeric - LIHACHTETAN/ClassicUO-BadNewbie-BasicIDE GitHub Wiki

IsNumeric

Оглавление · Алфавитный указатель · BASIC built-ins

ClassicUO • Runtime API

Проверяет возможность числового разбора.

Точный синтаксис

IsNumeric(value:Any) -> Integer

Выберите одну из зарегистрированных форм. Параметры передаются позиционно. Any означает значение BASIC с преобразованием внутри команды; Unit — отсутствие возвращаемого значения.

Параметры

  • value — Любое значение. Integer/Decimal сразу считаются числовыми; String разбирается как double с точкой и экспонентой. Остальные виды дают 0.

Возвращает

Integer Boolean: 1 для числа либо допустимой числовой строки, 0 для остальных значений. Это не проверка диапазона Int32 или конечности числа; формат double допускает специальные значения.

Поведение

  • Выполняется локально и не обращается к игровому серверу. Исходная строка не изменяется: результат нужно сохранить или передать дальше.
  • Позиции и длины строк считаются в единицах UTF-16. Символ за пределами BMP, например emoji, занимает две единицы. Это не количество байтов UTF-8.

Примеры

Пример 1. Строка с дробью

# Строка с дробью
#
# Проверяет возможность числового разбора.
#
# Integer Boolean: 1 для числа либо допустимой числовой строки, 0 для остальных значений. Это не
# проверка диапазона Int32 или конечности числа; формат double допускает специальные значения.

SUB Main()
    # Десятичная точка допустима независимо от языка IDE.
    # Ожидаемый результат: 1. В result сохраняется результат выражения; Print только показывает его.

    VAR result = IsNumeric('1.25')
    UO.Print(CStr(result))
END SUB

Разбор параметров и выполнения:

  • Десятичная точка допустима независимо от языка IDE.
  • Ожидаемый результат: 1. В result сохраняется результат выражения; Print только показывает его.

Пример 2. Посторонний текст

# Посторонний текст
#
# Проверяет возможность числового разбора.
#
# Integer Boolean: 1 для числа либо допустимой числовой строки, 0 для остальных значений. Это не
# проверка диапазона Int32 или конечности числа; формат double допускает специальные значения.

SUB Main()
    # Строка не является числом.
    # Ожидаемый результат: 0. В result сохраняется результат выражения; Print только показывает его.

    VAR result = IsNumeric('gold')
    UO.Print(CStr(result))
END SUB

Разбор параметров и выполнения:

  • Строка не является числом.
  • Ожидаемый результат: 0. В result сохраняется результат выражения; Print только показывает его.

Пример 3. Hex не является этим десятичным форматом

# Hex не является этим десятичным форматом
#
# Проверяет возможность числового разбора.
#
# Integer Boolean: 1 для числа либо допустимой числовой строки, 0 для остальных значений. Это не
# проверка диапазона Int32 или конечности числа; формат double допускает специальные значения.

SUB Main()
    # Для hex используйте ASC(text,fallback) вместо IsNumeric/val.
    # Ожидаемый результат: 0. В result сохраняется результат выражения; Print только показывает его.

    VAR result = IsNumeric('0xFF')
    UO.Print(CStr(result))
END SUB

Разбор параметров и выполнения:

  • Для hex используйте ASC(text,fallback) вместо IsNumeric/val.
  • Ожидаемый результат: 0. В result сохраняется результат выражения; Print только показывает его.