J'ai une chaîne au format: 'nn.nnnnn' en Python, et je voudrais la convertir en nombre entier.Convertir une chaîne en entier avec décimal en Python
conversion directe échoue:
>>> 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'
je peux le convertir en un nombre décimal en utilisant: « »
>>> from decimal import *
>>> d = Decimal(s)
>>> print d
23.45678
Je pourrais aussi partager sur, puis soustrayez la décimale de zéro, puis ajouter ça au nombre entier ... beurk.
Mais je préférerais l'avoir comme un int, sans conversions de type inutiles ou manoeuvrer.
Matt, 23.45678 n'est pas un nombre entier. Si vous voulez que Python convertisse une chaîne en entier, assurez-vous de lui donner un entier. Des arguments peuvent être faits de toute façon sur ce qu'est la "bonne" chose, et à la fin, quelqu'un va être malheureux. – Christopher