The isNumeric function is like this in the engine:
static bool IsNumeric(const CharType* Str)
{
if (*Str == '-' || *Str == '+')
{
Str++;
}
bool bHasDot = false;
while (*Str != '\0')
{
if (*Str == '.')
{
if (bHasDot)
{
return false;
}
bHasDot = true;
}
else if (!FChar::IsDigit(*Str))
{
return false;
}
++Str;
}
return true;
}
“12.12” should still be considered as numeric as long as there is only one decimal point.