Подтвердить что ты не робот

Преобразование строки в long в python

Python предоставляет удобный метод long() для преобразования строки в long:

long('234') 

; преобразует "234" в длинный

Если пользовательские ключи в 234.89, то python поднимет сообщение об ошибке:

ValueError: invalid literal for long()
with base 10: '234.89'

Как программист на python обрабатывает сценарии, где строка с десятичным значением?

Спасибо =)

4b9b3361

Ответ 1

long может принимать только строковые кабриолеты, которые могут заканчиваться базовым номером 10. Таким образом, десятичный знак причиняет вред. То, что вы можете сделать, это float значение перед вызовом long. Если ваша программа находится на Python 2.x, где важны значения int и long, и вы уверены, что не используете большие целые числа, вы могли бы просто отлично использовать int для предоставления ключа.

Итак, ответ long(float('234.89')) или может быть просто int(float('234.89')), если вы не используете большие целые числа. Также обратите внимание, что эта разница не возникает в Python 3, так как по умолчанию функция int обновляется дольше. Все целые числа длинны в python3, а вызов для скрытых - это просто int

Ответ 2

Ну, longs не может содержать ничего, кроме целых.

Один из вариантов - использовать float: float('234.89')

Другой вариант - обрезать или округлить. Преобразование из поплавка в длинное будет усекать для вас: long(float('234.89'))

>>> long(float('1.1'))
1L
>>> long(float('1.9'))
1L
>>> long(round(float('1.1')))
1L
>>> long(round(float('1.9')))
2L