|
|
|
Округление.... о_О (PosgtreSQL + BigDecimal)
|
|||
|---|---|---|---|
|
#18+
Обнаружил, странное и необъяснимое для себя явление: В постгресе хранится число в поле типа numeric(19,3), со значением 369.755. (Смотрю через pgAdmin) Когда в коде беру это число у объекта, то его значение становится 369.7548. В приложении картинка из дебага. Есть ли у кого объяснение такого поведения при вытаскивании объектов из БД? Использую Hibernate, может с ним что-то не так? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2012, 11:43:49 |
|
||
|
Округление.... о_О (PosgtreSQL + BigDecimal)
|
|||
|---|---|---|---|
|
#18+
Надо подебажить хибернейт. Возможно он на уровне JDBC значение как-то иначе считал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2012, 11:47:02 |
|
||
|
Округление.... о_О (PosgtreSQL + BigDecimal)
|
|||
|---|---|---|---|
|
#18+
Добрый день, Nixic! > Когда в коде беру это число у объекта, то его значение становится 369.7548. > В приложении картинка из дебага. А как маппинг описан? > Есть ли у кого объяснение такого поведения при вытаскивании объектов из > БД? Использую Hibernate, может с ним что-то не так? Явно происходит где-то преобразование во float. Если не ошибка маппинга в настройках хибернейта- то бага где-то? -- Алексей JID: alxt@ya.ru Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2012, 11:49:07 |
|
||
|
Округление.... о_О (PosgtreSQL + BigDecimal)
|
|||
|---|---|---|---|
|
#18+
посмотрел массив который достается из габера, значение номральное 369755 со скейлом 3. Так что это где-то у меня в коде... пойду дебажить дальше. Спасибо. По результатам отпишу :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2012, 12:17:25 |
|
||
|
Округление.... о_О (PosgtreSQL + BigDecimal)
|
|||
|---|---|---|---|
|
#18+
"габер"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2012, 12:22:18 |
|
||
|
Округление.... о_О (PosgtreSQL + BigDecimal)
|
|||
|---|---|---|---|
|
#18+
хотел написать гибер )) В общем я нашел косяк и поправил его. При формировании цены продажи наценка посчитанная из установленных пользователем процентов в формате BigDecimal была с 6 знаками после запятой прибавлялась к цене закупочной с 3-мя знаками, поэтому получалось, что пресловутый piceOut() уже имел 6 знаков. Но очень странно, что массив объектов изменился в рамках одного метода. В этом методе по массиву объектов несколько раз пробегается цикл for и производит некоторые операции с элементами, в том числе апдейт в БД. Но я считал, что это никак не может повлиять на Массив. Не понимаю, а точнее чего-то не знаю, пойду подебажу еще подробнее и может быть пойму. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2012, 12:35:19 |
|
||
|
Округление.... о_О (PosgtreSQL + BigDecimal)
|
|||
|---|---|---|---|
|
#18+
Я правильно понимаю, что массив объектов, если изменить значение одного из его объектов в цикле, при дальнейшем использовании будет иметь в своем составе элемент с измененным значением? Почему-то я раньше считал, что массивы и элементы берущиеся из него - это разные вещи. И изменения элементов, которые уже преобразованы в объекты конкретного типа не влияют на состав массива. Похоже, ошибался, пойду, пожалуй, документацию почитаю по циклам и по массивам. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2012, 12:51:45 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=38083290&tid=2130338]: |
0ms |
get settings: |
14ms |
get forum list: |
24ms |
check forum access: |
6ms |
check topic access: |
6ms |
track hit: |
45ms |
get topic data: |
16ms |
get forum data: |
4ms |
get page messages: |
72ms |
get tp. blocked users: |
2ms |
| others: | 312ms |
| total: | 501ms |

| 0 / 0 |
