Что такое 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;
Другие вопросы по тегам