Python throws the error, ValueError: invalid literal for int() with base 10: ”, when you pass a float string in int() function. Although, you can pass the string in float() function.

Consider this example –

>>> int('5555.00')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 10: '5555.00'

The problem with this code is that you are passing a float string '5555.00' in int() function. The correct way of doing this is to first convert it into float() and then into int(). Check out this code for right implementation –

>>> int(float('5555.00'))
5555

According to Python, these are the acceptable inputs –

  • passing a string representation of an integer into int – Example – int('55')
  • passing a string representation of a float into float – Example – float('55.00')
  • passing a string representation of an integer into float – Example – float('55')
  • passing a float into int – Example – int(55.00)
  • passing an integer into float – Example – float(55)

For empty strings you will get the error. So, always check if a string is empty before passing it into int() or float() function.

    Tweet this to help others

Live Demo

Demo might not work in private window (incognito)

Comments

About the Author

akamit

I am Akash Mittal, an overall computer scientist. If you want to guest post, need help in your projects, want to advertise, Feel free to contact me at [email protected]

View All Articles