Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Округление.... о_О (PosgtreSQL + BigDecimal) / 8 сообщений из 8, страница 1 из 1
18.12.2012, 11:43:49
    #38083163
Nixic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Округление.... о_О (PosgtreSQL + BigDecimal)
Обнаружил, странное и необъяснимое для себя явление:

В постгресе хранится число в поле типа numeric(19,3), со значением 369.755. (Смотрю через pgAdmin)

Когда в коде беру это число у объекта, то его значение становится 369.7548.
В приложении картинка из дебага.

Есть ли у кого объяснение такого поведения при вытаскивании объектов из БД? Использую Hibernate, может с ним что-то не так?
...
Рейтинг: 0 / 0
18.12.2012, 11:47:02
    #38083170
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Округление.... о_О (PosgtreSQL + BigDecimal)
Надо подебажить хибернейт. Возможно он на уровне JDBC значение как-то иначе считал.
...
Рейтинг: 0 / 0
18.12.2012, 11:49:07
    #38083176
GKS_Samara
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Округление.... о_О (PosgtreSQL + BigDecimal)
Добрый день, Nixic!

> Когда в коде беру это число у объекта, то его значение становится 369.7548.
> В приложении картинка из дебага.

А как маппинг описан?

> Есть ли у кого объяснение такого поведения при вытаскивании объектов из
> БД? Использую Hibernate, может с ним что-то не так?

Явно происходит где-то преобразование во float.
Если не ошибка маппинга в настройках хибернейта- то бага где-то?

--
Алексей
JID: alxt@ya.ru
Posted
via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
18.12.2012, 12:17:25
    #38083225
Nixic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Округление.... о_О (PosgtreSQL + BigDecimal)
посмотрел массив который достается из габера, значение номральное 369755 со скейлом 3.
Так что это где-то у меня в коде... пойду дебажить дальше.
Спасибо. По результатам отпишу :)
...
Рейтинг: 0 / 0
18.12.2012, 12:22:18
    #38083235
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Округление.... о_О (PosgtreSQL + BigDecimal)
"габер"?
...
Рейтинг: 0 / 0
18.12.2012, 12:35:19
    #38083259
Nixic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Округление.... о_О (PosgtreSQL + BigDecimal)
хотел написать гибер ))

В общем я нашел косяк и поправил его. При формировании цены продажи наценка посчитанная из установленных пользователем процентов в формате BigDecimal была с 6 знаками после запятой прибавлялась к цене закупочной с 3-мя знаками, поэтому получалось, что пресловутый piceOut() уже имел 6 знаков.

Но очень странно, что массив объектов изменился в рамках одного метода.
В этом методе по массиву объектов несколько раз пробегается цикл for и производит некоторые операции с элементами, в том числе апдейт в БД. Но я считал, что это никак не может повлиять на Массив. Не понимаю, а точнее чего-то не знаю, пойду подебажу еще подробнее и может быть пойму.
...
Рейтинг: 0 / 0
18.12.2012, 12:51:45
    #38083290
Nixic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Округление.... о_О (PosgtreSQL + BigDecimal)
Я правильно понимаю, что массив объектов, если изменить значение одного из его объектов в цикле, при дальнейшем использовании будет иметь в своем составе элемент с измененным значением?
Почему-то я раньше считал, что массивы и элементы берущиеся из него - это разные вещи. И изменения элементов, которые уже преобразованы в объекты конкретного типа не влияют на состав массива. Похоже, ошибался, пойду, пожалуй, документацию почитаю по циклам и по массивам.
...
Рейтинг: 0 / 0
18.12.2012, 13:01:36
    #38083323
Nixic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Округление.... о_О (PosgtreSQL + BigDecimal)
Вот я затупил-то!!! это же не new объект... всё ))) вопрос закрыт, сам дурак))
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Округление.... о_О (PosgtreSQL + BigDecimal) / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]