2014-11-04 3 views
0

Я работаю над программой, которая получает позицию индекса пользователя при вводе текстового виджета в Tkinter и сохраняет его в переменной. Но когда индекс равен 1,20, он заканчивается превращением в 1.2. Есть ли способ убедиться, что переменная с индексом 1.20 в ней останется 1,20?Как предотвратить округление числа от Python Tkinter

Я попытался использовать float(). Но это, похоже, не сработало.

Любые идеи?

И благодарю вас заранее.

+0

Зачем вам '1.20', а не' 1.2', учитывая, что '1.20 == 1.2'? – jonrsharpe

+0

@jonrsharpe Поскольку при использовании текстового виджета Tkinter 1.20 стоит позиция (первая строка 20-го столбца). В то время как 1.2 является вторым столбцом первой строки. – 0Cool

+2

Почему бы не сохранить две половинки отдельно, например. 'row, col = map (int, val.split (". "))'? Не могли бы вы предоставить [минимальный пример] (http://stackoverflow.com/help/mcve) кода, который демонстрирует проблему? – jonrsharpe

ответ

2

Решение прост: никогда не рассматривайте индекс как число, потому что это не число. Это строка, которая выглядит как число. Если у вас есть код, который округляет значение (или обрезает конечные нули), где-то вы рассматриваете его как число.

+0

Но мне нужно, чтобы он ссылался на него позже. Поэтому я могу добавить тег в позицию. – 0Cool

+0

@ 0Cool: это не имеет значения. Это не число, это строка. Вы можете сохранить строку и ссылаться на нее позже, которая не связана с тем, как вы обрабатываете значение. Вы просто не можете использовать его как число. Вы можете использовать его в виде строки или вы можете разбить на два числа, но вы не можете рассматривать индекс в целом как число с плавающей запятой. –

Смежные вопросы