Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 10, 2013 18:10:07

Pluto
Зарегистрирован: 2012-05-29
Сообщения: 177
Репутация: +  1  -
Профиль   Отправить e-mail  

Нежданная экспоненциальная форма чисел в модели из запроса. PyQt4. SQLite3

До этого всё создавал запросы в качестве хранимых представлений в самой БД.
Пример: SELECT sum(money) as summa FROM table GROUP BY something

Затем делал для QSqlTableModel.setTable(“myView”) и в соответствующей QTableView сумма из запроса появлялась в приемлемом виде. (только с кучей цифр после запятой)

Теперь же аналогичный запрос я создал в тексте питон-программы, поместил его в query = QSqlQuery(SELECT sum(money) as summa FROM table GROUP BY something), затем эту кверю поместил в модель QSqlTableModel.setQuery(query)

В итоге, в отображаемой на форме вьюшке я вместо нормальных сумм вижу что-то типа 1,8452e+06.

Как побороть? И зачем Qt вообще так делает?

Офлайн

#2 Окт. 13, 2013 06:19:34

Pluto
Зарегистрирован: 2012-05-29
Сообщения: 177
Репутация: +  1  -
Профиль   Отправить e-mail  

Нежданная экспоненциальная форма чисел в модели из запроса. PyQt4. SQLite3

Никто - никто не сталкивался?

Офлайн

#3 Окт. 15, 2013 19:09:51

Pluto
Зарегистрирован: 2012-05-29
Сообщения: 177
Репутация: +  1  -
Профиль   Отправить e-mail  

Нежданная экспоненциальная форма чисел в модели из запроса. PyQt4. SQLite3

Люди! Ну, подскажите кто-нибудь. Числа в таблице принимают удобоваримый вид только если сделать cast (sum(money) as integer) as summa. Но мне не нужны целые числа! Это же денюжки, там циферки после запятой должны быть!

Офлайн

#4 Окт. 15, 2013 20:31:17

reclosedev
От: Н.Новгород
Зарегистрирован: 2012-03-29
Сообщения: 870
Репутация: +  173  -
Профиль   Отправить e-mail  

Нежданная экспоненциальная форма чисел в модели из запроса. PyQt4. SQLite3

Можно Model.data() переопределить http://www.qtforum.org/article/30219/qtableview-setting-precision-for-numbers.html
Или с делегатом заморочиться.

Офлайн

#5 Окт. 16, 2013 13:40:02

Pluto
Зарегистрирован: 2012-05-29
Сообщения: 177
Репутация: +  1  -
Профиль   Отправить e-mail  

Нежданная экспоненциальная форма чисел в модели из запроса. PyQt4. SQLite3

Кстати, переделал данный запрос в хранимое в БД представление и получил такой же результат. Безобразие!
Он мне так циферки кажет у которых получается шибко много знаков после запятой, типа 459884.699999999

Но, в то же время, этот запрос выполненный силами Sqliteman выдаёт нормальный вид чисел.

Отредактировано Pluto (Окт. 16, 2013 13:45:38)

Офлайн

#6 Окт. 16, 2013 13:44:28

Pluto
Зарегистрирован: 2012-05-29
Сообщения: 177
Репутация: +  1  -
Профиль   Отправить e-mail  

Нежданная экспоненциальная форма чисел в модели из запроса. PyQt4. SQLite3

reclosedev
Можно Model.data() переопределить http://www.qtforum.org/article/30219/qtableview-setting-precision-for-numbers.htmlИли с делегатом заморочиться.
Спасибо за подсказку.
Но как же мне не нравится такая ФИГНЯ в языках программирования. Ему что в лом что ли выдать нормальное число? Ну и что что там циферек много. На кой ляд мне эта непрошеная экспоненциальная форма?

Злюся я.

Офлайн

#7 Окт. 20, 2013 11:17:42

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

Нежданная экспоненциальная форма чисел в модели из запроса. PyQt4. SQLite3

:)

Pluto
Злюся я.
А я злюся когда при получении зарплаты в квитке куча циферок точка еле видна и не сразу поймешь может десять тысяч выдали а может и миллион. Нет чтобы нормально писали - в экспоненциальной форме. Коротко и ясно.



Отредактировано doza_and (Окт. 20, 2013 11:20:08)

Офлайн

#8 Окт. 20, 2013 13:15:50

bismigalis
Зарегистрирован: 2010-10-02
Сообщения: 449
Репутация: +  47  -
Профиль   Отправить e-mail  

Нежданная экспоненциальная форма чисел в модели из запроса. PyQt4. SQLite3

Это же денюжки

денюжки нельзя во float хранить, decimal для этого

Офлайн

#9 Апрель 2, 2014 18:55:43

Pluto
Зарегистрирован: 2012-05-29
Сообщения: 177
Репутация: +  1  -
Профиль   Отправить e-mail  

Нежданная экспоненциальная форма чисел в модели из запроса. PyQt4. SQLite3

bismigalis
денюжки нельзя во float хранить, decimal для этого
А SQLite нету дела ни до какого decimal.

Офлайн

#10 Апрель 2, 2014 21:03:55

Alen
Зарегистрирован: 2013-08-01
Сообщения: 373
Репутация: +  49  -
Профиль   Отправить e-mail  

Нежданная экспоненциальная форма чисел в модели из запроса. PyQt4. SQLite3

Pluto
А SQLite нету дела ни до какого decimal

А до строк есть?

>>> from decimal import Decimal
>>> a = Decimal(10e99)
>>> a
Decimal('10000000000000000159028911097599180468360808563945281389781327557747838
772170381060813469985856815104')
>>> b = str(a)
>>> b
'1000000000000000015902891109759918046836080856394528138978132755774783877217038
1060813469985856815104'
>>> c = Decimal(b)
>>> a == b
False
>>> a == c
True
>>>

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version