expression-evaluator-c-sharp
expression-evaluator-c-sharp copied to clipboard
ISNUMBER returns true only if the text contains at least a decimal separator
Hi @matheval,
it looks like the ISNUMBER(value) function returns true only when the text is a number with a decimal separator.
The regex used to check the value is /^-?\d*(\.\d+)+$/
with the (\.\d+)+
bit meaning one or more group of characters consisting of a point and one or more digit.
I think something like this could work better: /^-?\d*\.?\d+$/
Or, if you want to accept numbers with a trailing dot like "123.", you can change the last \d+
to \d*
: /^-?\d*\.?\d*$/
Example: regexr.com/7bkvf
As a workaround I had to use ISNUMBER(CONCAT(value, '.0')).
Thank you in advance
I submitted pull request #14 that should fix this issue.