2015-08-15 3 views
0

При использовании TextInput в Kivy, все, что вводится хранится в виде строки, даже если вход ограничен символами, которые представляют float с или int с с использованием input_filter. Как можно преобразовать TextInput.text в фактический тип float или int, чтобы я мог выполнять вычисления с ним?Kivy: Как преобразовать пользовательский ввод в междунар или поплавок

+0

попробовать кастинг для поплавка? –

ответ

0

Попробуйте cast

str_float = '123.456' 
flt_val = float(str_float) 

для int

int_val = int(str_int) 

Если строка является недопустимым числом, то он бросает ValueError исключение. Так,

try: 
    int_val = int(str_int) # or flt_val = float(str_float) 
except ValueError: 
    # Handle exception. 
0

Почему вы не смогли просто захватить TextInput.text и преобразовать его, используя float или int? т.е. text = TextInput.text для межд .. conversion = int(text)

+0

int будет терпеть неудачу при поплавке –

+0

Почему я сказал, что для 'int' используется' int' cast, но вы правы должны были просто использовать 'float' cast в качестве примера для обработки целых чисел и чисел с плавающей запятой. – Pythonista

0

В Kivy по умолчанию TextInput в Unicode. Таким образом, вам придется делать много конверсий. В основном назад к поплавкам и струнам.

entry = float(entry) 
entry = str(entry) 
Смежные вопросы