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 только показывает его.