FYI...
Here's a method of handling invalid numeric values in case you have form fields that are string type but need to be treated as numeric values.
my:ID[string(number(.))!='NaN']
Valid numeric values will get saved and an invalid numeric value is saved as NULL.