In Python, what is a clean and elegant way to convert strings like “1,374” or “21,000,000” to int values like 1374 or 21000000?
Share
Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.
Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.
Lost your password? Please enter your email address. You will receive a link and will create a new password via email.
Please briefly explain why you feel this question should be reported.
Please briefly explain why you feel this answer should be reported.
Please briefly explain why you feel this user should be reported.
It really depends where you get your number from.
If the number you are trying to convert comes from user input, use
locale.atoi(). That way, the number will be parsed in a way that is consistent with the user’s settings and thus expectations.If on the other hand you read it, let’s say, from a file, that always uses the same format, use
int("1,234".replace(",", ""))orint("1.234".replace(".", ""))depending on your situation. This is not only easier to read and debug, but it’s not affected by the user’s locale setting, so your parser will work on any system.