correctly parse all integer types. fixes #9289

Used `parseint` and `parsefloat` methods instead of `float64_isvalid`.

this is unfortunate, since stack unwinding is so incredibly expensive on windows and we always create the stack trace on an error