powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / JDBC + Sybase ASE "money" type "rounding"
5 сообщений из 5, страница 1 из 1
JDBC + Sybase ASE "money" type "rounding"
    #34591159
Kostya Ilyinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день, столкнулся со следующей проблемой, буду признателен за помощь в разрешении и/или советы.

есть таблица с типом данных money:

Column_name Type Length Prec Scale Nulls Default_name Identity
amount money 8 <<null>> <<null>> true <<null>> <<null>>

Есть строка с значением 4500000000000 (4.5 триллиона):

isql -U user -P pass -D database
1> select amount from mytable where id = 1
2> go
amount
------------------------
4,500,000,000,000.00

(1 row affected)

То же самое в JDBC-туле (Aqua DataStudio):

amount
4499999999999,9995

Соответсвенно это же "кривое" значение и во фронтэнде (Servlets on Tomcat 5.5.23)...

Где можно посмотреть/что можно настроить чтобы отображалось нормально (локаль сервера БД, локаль пользователя etc.)? Спасибо.
...
Рейтинг: 0 / 0
JDBC + Sybase ASE "money" type "rounding"
    #34591375
Фотография Dmitry.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если пользовать родной sybase java "Interactive SQL"
то резалт нормальный :)

т.е. ищите проблему у себя
--
для информации:

на сервере тип money:
typedef struct _cs_money
{
CS_INT mnyhigh;
CS_UINT mnylow;
} CS_MONEY;

в JDBC:
money => DECIMAL

ваш результат "4499999999999,9995" похож на отображение "double" (c недостаточной точностью)
...
Рейтинг: 0 / 0
JDBC + Sybase ASE "money" type "rounding"
    #34591769
Kostya Ilyinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо, проблема действительно скорее всего в несовсем корректном отображении money -> double

читаю вот так:

NumberFormat.getNumberInstance().format(rs.getDouble("amount"));

Буду смотреть double...

Спасибо.
...
Рейтинг: 0 / 0
JDBC + Sybase ASE "money" type "rounding"
    #34592227
kolchanov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Корректнее, на мой взгляд, java.math.BigDecimal.
...
Рейтинг: 0 / 0
JDBC + Sybase ASE "money" type "rounding"
    #34592503
Kostya Ilyinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо, на его-то я и заменил. Все работает нормально. Удивляет, что цифры меньше (31 000 000 000) рендерит нормально...Спасибо.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / JDBC + Sybase ASE "money" type "rounding"
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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