An empty string converts to zero for types float and int, but not decimal. (And it is converted on January 01, 1900 for datetimes = zero). I donโt know why .. it's just ...
If you need decimal (18.0), use bigint instead. Or listing with float first
ISNUMERIC will accept - and . and 1.2E3 as a number, but everyone will not be able to convert them to decimal.
source share