How do I check for a decimal point when checking a string is a valid number?
What I am thinking is that I use something like the following, but add code to check for
Take a look at reads, then:
isNumber :: String -> Bool
isNumber str =
case (reads str) :: [(Double, String)] of
[(_, "")] -> True
_ -> False
Maybe there is a better way, though.
Note that this will return True
for numbers that are considered valid in Haskell, your particular use case is not fully covered by this. If you need custom parsing according to your specification you should use something like Parsec, as @CarstenKönig has suggested in his comment.