Skip to content

Instantly share code, notes, and snippets.

@codingforentrepreneurs
Created August 5, 2021 16:20
Show Gist options
  • Save codingforentrepreneurs/bcac6c1a047aec031f58984d5188e57d to your computer and use it in GitHub Desktop.
Save codingforentrepreneurs/bcac6c1a047aec031f58984d5188e57d to your computer and use it in GitHub Desktop.
A simple python function to convert a number string into a float if possible.
from fractions import Fraction
def number_str_to_float(amount_str:str) -> (any, bool):
"""
Take in an amount string to return float (if possible).
Valid string returns:
Float
Boolean -> True
Invalid string Returns
Original String
Boolean -> False
Examples:
1 1/2 -> 1.5, True
32 -> 32.0, True
Abc -> Abc, False
"""
success = False
number_as_float = amount_str
try:
number_as_float = float(sum(Fraction(s) for s in f"{amount_str}".split()))
except:
pass
if isinstance(number_as_float, float):
success = True
return number_as_float, success
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment