简体   繁体   中英

Is there built-in way to check if string can be converted to float?

I know there are ways to check if str can be converted using try-except or regular expressions, but I was looking for (for example) str methods such as

str.isnumeric()
str.isdigit()
str.isdecimal() # also doesn't work for floats

but could't find any. Are there any I haven't found yet?

I would suggest the ask for forgiveness not permission approach of using the try except clause:

str_a = 'foo'
str_b = '1.2'

def make_float(s):
    try:
        return float(s)
    except ValueError:
        return f'Can't make float of "{s}"'

>>> make_float(str_a)
Can't make float of "foo"
>>> make_float(str_b)
1.2

As stated by and Macattack and Jab , you could use try except , which you can read about in python's docs or w3school's tutorial .

Try Except clauses have the form:

try:
    # write your code
    pass
except Exception as e: # which can be ValueError, or other's exceptions
    # deal with Exception, and it can be called using the variable e
    print(f"Exception was {e}") # python >= 3.7
    pass
except Exception as e: # for dealing with other Exception
    pass
# ... as many exceptions you would need to handle
finally:
    # do something after dealing with the Exception
    pass

For a list of built-in Exceptions, see python's docs .

Easiest way would be to just try and turn it into a float.

try:
    float(str)
except ValueError:
    # not float
else:
    # is float

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM