Tengo una cadena con el formato 'nn.nnnnn' en Python y me gustaría convertirla en un entero.Convierta una cadena en entero con decimal en Python
La conversión directa falla:
>>> s = '23.45678'
>>> i = int(s)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 10: '23.45678'
que puede convertirlo en un decimal mediante el uso de: ''
>>> from decimal import *
>>> d = Decimal(s)
>>> print d
23.45678
También podría dividir en, y luego restar el decimal de cero, a continuación, añadir eso a todo el número ... puaj.
Pero prefiero tenerlo como int, sin conversiones de tipo innecesarias o maniobras.
Matt, 23.45678 no es un número entero. Si quieres que Python convierta una cadena en un entero, asegúrate de darle un número entero. Los argumentos pueden hacerse de cualquier manera sobre lo que es "correcto", y al final alguien será infeliz. – Christopher