Как мне разделить число с плавающей запятой.
Например:
1.24345 вернет 24345
1455.24 вернет 24
1455.0 вернет 0
Изменить:
Мое решение вдохновлено Ником Оделлом. Это ориентировано именно на виджет Tkinter Text.
index = '140.2020'
split = index.split('.')
nindex = [int(i) for i in split]
print nindex
Предполагая, что "index" является строкой, поскольку вы имеете дело с индексом текстового виджета:
int(index.split('.')[-1])
Если у вас действительно есть число с плавающей запятой, сначала нужно преобразовать его в строку:
int(str(index).split('.')[-1])
Обратите внимание, что индексы строк/столбцов могут выглядеть как значения с плавающей запятой, но редко можно рассматривать их как таковые (рассмотрите позицию 1.25 против 1.3, для пример). Иногда я использую 1.0 "1.0", чтобы сэкономить несколько нажатий клавиш, когда ссылаясь на первый символ в буфер, но это о нем.
Вы должны были упомянуть контекст в OP (Tkinter Text Widget). То, что вы делаете, не имеет ничего общего с номерами floating-. Вы просто находите период, за которым следует целое число. Вы никогда не должны сохранять это значение в любой переменной floating-. (Это может иметь тяжелые последствия.)
num
является переменной с плавающей точкой. Если это так, ваш код часто не может ссылаться на правильную строку и символ. Вы должны хранить эти значения только в виде пары целых чисел или в виде строки.
def after_period(number):
return int(str(number).partition(".")[2])
Использовать divmod
for num in [1.24345, 1455.24]:
whole, dec = divmod(num, 1)
print num, whole, dec
1455.24
равно1455.2400
или1455.24000000000
, так почему же результат не должен быть24000000000
?