What about of float numbers, negatives numbers, etc.. All the examples before will be wrong.
Until now I got something like this, but I think it could be a lot better:
'95.95'.replace('.','',1).isdigit()
will return true only if there is one or no '.' in the string of digits.
'9.5.9.5'.replace('.','',1).isdigit()
will return false