Ho una stringa nel formato: 'nn.nnnnn' in Python e mi piacerebbe convertirla in un numero intero.Converte una stringa in intero con decimale in Python
Conversione diretta fallisce:
>>> 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'
posso convertirlo in un numero decimale utilizzando: ''
>>> from decimal import *
>>> d = Decimal(s)
>>> print d
23.45678
Potrei anche dividere, poi sottrarre decimale da zero, quindi aggiungere quello al numero intero ... schifo.
Ma preferirei averlo come int, senza conversioni o manovre non necessarie.
Matt, 23.45678 non è un numero intero. Se vuoi che Python converta una stringa in un intero, assicurati di dargli un numero intero. Le discussioni possono essere fatte in entrambi i modi su ciò che è la "giusta" cosa, e alla fine qualcuno sarà infelice. – Christopher