![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| Иван Человеков |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 235 Регистрация: 11.3.2006 Где: Минск Репутация: нет Всего: 1 |
Использую СУБД PostgreSQL. Ребята подскажите пожалуйста какой тип выбрать в программе для подсчёта и хранения денег, а также в СУБД? Double и float пенозволяют вести, насколько я понял, точный подсчёт без округления.
Я использую: в СУБД money, а в программе использую кусок кода:
ERROR: column "stavka_razrada" is of type money but expression is of type numeric 1. Какой тип использовать в джава программе и как обрабатывать суммы? 2. Какой тип использовать в СУБД PostgreSQL Спасибо |
|||
|
||||
| tux |
|
|||
![]() Летатель ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1853 Регистрация: 10.2.2005 Где: msk.ru Репутация: 31 Всего: 132 |
Цитата отсюда - http://www.postgresql.org/docs/8.2/interac...ype-money.html:
Здесь соответствие java-типов и типов JDBC - http://java.sun.com/j2se/1.5.0/docs/guide/...ng.html#1033804. |
|||
|
||||
| y3u |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 440 Регистрация: 9.9.2006 Где: Москва Репутация: 5 Всего: 13 |
вообще, касательно хранения денег, есть сложившиеся традиции, можно, к примеру, у того же Блоха почитать. Однозначно, надо хранить целым, каким-нибуь LONG желательно, а точность значения выбирать исходя из принятых на валютных биржах стандартов - отсюда и надо плясать, на 100 множить и потом делить, на 1000 или на 10000
-------------------- В нашей стране настаивать на кореньях, черной смородине, лимонных корках - гораздо эффективнее, чем на правах |
|||
|
||||
| Иван Человеков |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 235 Регистрация: 11.3.2006 Где: Минск Репутация: нет Всего: 1 |
Где бы почитать про традиции и книгу Блоха?
|
|||
|
||||
| COVD |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1655 Регистрация: 26.7.2005 Репутация: 17 Всего: 43 |
посмотрите у Фаулера http://www.martinfowler.com/ap2/quantity.html - паттерн Quantity и его частный случай Money с примером на java.
Это сообщение отредактировал(а) COVD - 28.2.2007, 23:22 |
|||
|
||||
| Иван Человеков |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 235 Регистрация: 11.3.2006 Где: Минск Репутация: нет Всего: 1 |
Тип поля поменял на Numeric[30,2]
Вот мой код:
При выполнении возвращает код ошибки: ERROR: column "stavka_razrada" is of type numeric[] but expression is of type numeric Строка запроса: INSERT INTO firms (name_firm,stavka_razrada,fio_director,fio_gl_buh)VALUES(q,1.2,w,e) В чём может быть ошибка? Спасибо. |
|||
|
||||
| Иван Человеков |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 235 Регистрация: 11.3.2006 Где: Минск Репутация: нет Всего: 1 |
Как я понял, оказывается что тип numeric[] и numeric в PostgreSQL - воспринимаются как разные типы
Как только сменит на тип без скобок, ошибку выдавать перестало, но появилась другая проблема - после запятой в СУБД можно записать более 2 символов. Как решить эту проблему? Можно ли как-то типу BigDecimal задать фиксированную точность после запятой? Спасибо. |
|||
|
||||
| LSD |
|
||||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
-------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
||||
|
|||||
| Иван Человеков |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 235 Регистрация: 11.3.2006 Где: Минск Репутация: нет Всего: 1 |
Спасибо разобрался
|
|||
|
||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |