Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 3, 2013 10:12:37

Linux_er
Зарегистрирован: 2013-09-18
Сообщения: 8
Репутация: +  0  -
Профиль   Отправить e-mail  

конвертировать int/float в string

Добрый день. у меня такой вопрос.

есть вещественное число, например: 34,25

необходимо преобразовать его в строку вида 34.25 (разделитель точка)
а также обратное преобразование из str 34.25 в float 34,25

много перерыл в инете, но ничего понятного не нашел.

помогите кто может, пожалуйста.



Старый глюк лучше новых двух.
Не находи в программе ошибок, с которыми не знаешь что дальше делать

Офлайн

#2 Окт. 3, 2013 10:14:40

Singularity
Зарегистрирован: 2011-07-28
Сообщения: 1387
Репутация: +  75  -
Профиль   Отправить e-mail  

конвертировать int/float в string

Linux_er
есть вещественное число, например: 34,25
в питоне разделитель точка

Офлайн

#3 Окт. 3, 2013 10:15:28

Singularity
Зарегистрирован: 2011-07-28
Сообщения: 1387
Репутация: +  75  -
Профиль   Отправить e-mail  

конвертировать int/float в string

In [1]:  34,25
Out[1]: (34, 25) # python принял это за кортеж
In [2]: f = str(34.25)
In [3]: f
Out[3]: '34.25'
In [4]: float(f)
Out[4]: 34.25
In [5]: 

Отредактировано Singularity (Окт. 3, 2013 10:15:59)

Офлайн

#4 Окт. 3, 2013 10:50:48

Linux_er
Зарегистрирован: 2013-09-18
Сообщения: 8
Репутация: +  0  -
Профиль   Отправить e-mail  

конвертировать int/float в string

разделитель то точка.

вопрос в том что в виджете из класса QDoublespinBox() значения вводятся в формате: 0,00

поэтому мне и необходимо преобразовать число в формат: 0.00

или может есть способ сделать так, чтобы числа в виджете QDoublespinBox() вводились в виде 0.00?

вот в чем состоит проблема.



Старый глюк лучше новых двух.
Не находи в программе ошибок, с которыми не знаешь что дальше делать

Офлайн

#5 Окт. 3, 2013 15:35:26

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

конвертировать int/float в string

Это не проблема, решение “в лоб”

>>> s='34,25'
>>> f=float(s.replace(',', '.'))
>>> f
34.25
>>> str(f).replace(',', '.')
'34.25'



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

#6 Окт. 5, 2013 23:23:36

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9885
Репутация: +  853  -
Профиль   Отправить e-mail  

конвертировать int/float в string

JOHN_16
>>> str(f).replace(',', '.')
'34.25'
>>> s = '34,25'
>>> f = float(s.replace(',', '.'))
>>> f
34.25
>>> str(f).replace('.', ',')
'34,25'
>>>



Отредактировано py.user.next (Окт. 5, 2013 23:24:32)

Офлайн

#7 Окт. 6, 2013 15:50:31

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  252  -
Профиль   Отправить e-mail  

конвертировать int/float в string

Linux_er
сделать так, чтобы числа в виджете QDoublespinBox() вводились в виде 0.00
Про QDoublespinBox не знаю, но обычно формат определяется настройками локали, этим он и лечится. При этом из контрола надо тащить сразу float а не преобразовывать из строки.



Отредактировано doza_and (Окт. 6, 2013 15:52:25)

Офлайн

#8 Окт. 7, 2013 20:18:12

Rodegast
От: Пятигорск
Зарегистрирован: 2007-12-28
Сообщения: 2757
Репутация: +  184  -
Профиль   Отправить e-mail  

конвертировать int/float в string

> вопрос в том что в виджете из класса QDoublespinBox() значения вводятся в формате: 0,00
Какая разница как они вводятся? У QDoublespinBox-а есть методы setValue и value, их и пользуй!



С дураками и сектантами не спорю, истину не ищу.
Ели кому-то правда не нравится, то заранее извиняюсь.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version