У меня есть строка в формате: 'nn.nnnnn' в Python, и я хотел бы преобразовать ее в целое число.Преобразование строки в целое число с десятичной точкой в Python
Прямое преобразование не может быть:
>>> 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'
я могу преобразовать его в десятичное с помощью: «»
>>> from decimal import *
>>> d = Decimal(s)
>>> print d
23.45678
Я мог бы также разделить на, а затем вычесть десятичные от нуля, а затем добавить что для целого числа ... yuck.
Но я бы предпочел, чтобы это было как int, без ненужных преобразований типов или маневрирования.
Matt, 23.45678 не является целым числом. Если вы хотите, чтобы Python преобразовывал строку в целое число, убедитесь, что вы дали ей целое число. Аргументы могут быть сделаны в любом случае о том, что такое «правильная», и, в конце концов, кто-то будет недоволен. – Christopher