I have looked in the standard library and on StackOverflow, and have not found a similar question. So, is there a way to do the following without rolling my own function? Bonus points if someone writes a beautiful function if there is no built in way.
def stringPercentToFloat(stringPercent)
# ???
return floatPercent
p1 = "99%"
p2 = "99.5%"
print stringPercentToFloat(p1)
print stringPercentToFloat(p2)
>>>> 0.99
>>>> 0.995
Use
strip('%')
, as:I wrote the following method that should always return the output to the exact same accuracy as the input, with no floating point errors such as in the other answers.
Explanation
i
(the index the decimal place was at) by 2, because we want to shift the decimal place 2 spaces to the left.i
is negative, then we need to pad with zeros.Test case (Try it online):
Another way:
float(stringPercent[:-1]) / 100