Что такое ECL-эквивалент NaN или IsNumeric?
Я хочу проверить, является ли какое-либо значение (то есть: 42 или 41.0005) числом в ECL (HPCC). Я имею в виду функцию, использующую регулярные выражения, как это:
EXPORT IsNumeric(STRING UniqueID) := FUNCTION
regex:='^\\d+$';
RETURN REGEXFIND(regex, UniqueID);
END;
Есть ли встроенная функция IsNumeric?
Если нет... Есть ли лучший способ сделать это, чем использовать регулярные выражения? (Думая как в удобочитаемости, так и в производительности)
- Может быть, команда ECL?
- Функция STD?
- Кастинг?
- #GetDataType?
- str.filter?
ПРИМЕЧАНИЕ. Похоже, что в старых версиях HPCC (2011) такой функции не существовало. Но с тех пор произошло много релизов.
1 ответ
Решение
Я спросил, есть ли официальные форумы HPCC, и нет ли в ECL встроенной функции IsNumeric.
В ответах есть несколько хороших обходных путей ECL лучше, чем мой. Лучше всего кажется:
IsNumeric(STRING n) := n = (STRING)(DECIMAL)n;