|
|
|
float С++ и decimal postgresql
|
|||
|---|---|---|---|
|
#18+
Всем добрых суток! Не пинайте сильно ежели туплю, но с такой проблемой (денежки) столкнулся впервые, в чём беда: Имеется база учёта товаров на складах, в ней в некоторых таблицах имеется цена закупки, цена продажи и сумма, что есть денежные значения.. (база на Postgre приложение Builder2009, подключаюсь: ODBC+ADO). Так вот, в качестве типа данных этих величин выбрал сперва money, записывает в базу без проблем, в базе значения отлично выглядят, но при выводи таблицы в DBGrid выводится полная ерунда: . Почитал тут, нашёл такой вариант, решил проблему следующим извращением в запросе: Код: plsql 1. 2. В итоге получил логично правильные значения в DBGrid. Но длинна запроса в коде билдера стала напоминать локомотив символов... Второй вариант: в базе типы сделал real, в билдере double или float, не важно - в С++ десятичные разделяются запятой, а в Postgre точкой... в приложении это принципиально, потому как ввод денех делается в maskedit по маске:!#######\,##;1; Как быть? Есть ли возможность билду научить точки вместо запятой? Написал бы функцию, но так не охото парить мозг такой мелочью, да и проблема не та чтоб столько времени на неё убить.. Как будет проще реализовывать денежные вещи? Кто может сталкивался, посоветуйте.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2015, 19:40 |
|
||
|
float С++ и decimal postgresql
|
|||
|---|---|---|---|
|
#18+
Midgard90, картинку не видно. может выставить какой-нибудь другую локаль в lc_monetary ? ru_RU.UTF8, например. билдер наверняка локаль системы использует для определения разделителя знаков (где-то глобально в настройках системы задается). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2015, 20:35 |
|
||
|
float С++ и decimal postgresql
|
|||
|---|---|---|---|
|
#18+
Midgard90, плавающие типы очень плохо для денех попробуйте numeric небольшой длины а в билдере поищите как стандартный decimal separator в маску именно для числа ставить. там выглядеть будет от настроек ОС , а попадать должно нормально (если строку sql не собираете руками, а передаете параметры). в приницпе и покодить не вердно один раз. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2015, 00:34 |
|
||
|
float С++ и decimal postgresql
|
|||
|---|---|---|---|
|
#18+
Картинка была следующая: Нашёл на форумах как наплевать на региональные форматы Windows: Код: plaintext 1. 2. 3. 4. 5. Получилось сделать десятичные точкой, хвала Богам подружил. И тут билда так это не оставила, если строкой выдёргивать текущее значение: Код: plaintext 1. Выходит в MaskEdit следующее поганство: Обычный Edit работает нормально, пробовал в маске поставить так:!#######\,#0;1; Не помогло... Думаю отказаться от масок и использовать обычный Edit ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2015, 08:07 |
|
||
|
float С++ и decimal postgresql
|
|||
|---|---|---|---|
|
#18+
Блин, картинки не цепляет.. Ссыли на них вот: поганство использование money Из первой видно поганство: вывод "__20._5 см." впринципе перестаёт быть числом.. откуда пробел - я не вкурил. А в первой картинке использование money, в гриде она кривая.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2015, 08:13 |
|
||
|
float С++ и decimal postgresql
|
|||
|---|---|---|---|
|
#18+
Midgard90, это не вопрос по пеже сходите к бильдезеристам, к дельфийцам наконец. идеология-то общая это всё болезни освоения инструментария, в каковом вы не в зуб ногой ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2015, 08:13 |
|
||
|
float С++ и decimal postgresql
|
|||
|---|---|---|---|
|
#18+
Вопрос был изначально - какой тип проще использовать в postgres для денежных форматов, и почему. А это я уже вечернюю возню описал, вдруг кому пригодиться. Почему numeric? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2015, 08:19 |
|
||
|
float С++ и decimal postgresql
|
|||
|---|---|---|---|
|
#18+
Midgard90Вопрос был изначально - какой тип проще использовать в postgres для денежных форматов, и почему. А это я уже вечернюю возню описал, вдруг кому пригодиться. Почему numeric?дебилдеру с дельфями лет под 30 уже небось, там этого говна--пирога понаотписано разными первопроходцами горы. почему-то всякий растебай считает что его опыт мало того что не завиральный, так ещё обязательно другому долбоклюву сгодится. и обязательно -- вывалить вот это всё в форуме по пэже плавающая арифметика не является особостью пеже, как и проблемы с типом мани. использование типов с фиксированной точностью -- нюмерик(пеже), он же намбер(оракел) -- это общее место, для денех, безотносительно к пеже. долбодятелы, считающие деньги в плавающей точке, со всеми набегающими ошибками -- тоже общее место. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2015, 08:41 |
|
||
|
|

start [/forum/topic.php?fid=53&msg=38881278&tid=1998170]: |
0ms |
get settings: |
13ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
32ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
50ms |
get tp. blocked users: |
1ms |
| others: | 234ms |
| total: | 363ms |

| 0 / 0 |
