Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Округление типов / 9 сообщений из 9, страница 1 из 1
18.12.2005, 22:59
    #33443140
TAURUS_iv43
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Округление типов
Дело в том, что для коректной работы мне нужно хранить число с двойной точностью (8 байт), Есть тип данных REAL, который позволяет это сделать, но какой в нём смысл если PostgreSQL округляет всё что я записываю в этот столбец? Например, при записи 123.456789 получаем 123.457
Как от этого избавиться?
...
Рейтинг: 0 / 0
18.12.2005, 23:51
    #33443169
raul_83
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Округление типов
FLOAT8
...
Рейтинг: 0 / 0
18.12.2005, 23:55
    #33443172
TAURUS_iv43
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Округление типов
Я пробовал, но дело в том что, точность всёравно не равна сишному doubl'у. Кстати, может кто знает заодно и как хранить unsgned long int?
...
Рейтинг: 0 / 0
19.12.2005, 00:02
    #33443180
TAURUS_iv43
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Округление типов
Насчёт не той точности, я имел ввиду, что например число
12312312312312.12312312312
хранится в типе double как 12312312312312.123047 а в таблице оно же хранится в научном виде:
1.231231e+13
если преобразовать назад, то точность получаеться вобще никакая, а мне надо чтоб в таблице число хранилось по аналогу сишного double
...
Рейтинг: 0 / 0
19.12.2005, 03:44
    #33443251
фффф
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Округление типов
TAURUS_iv43Насчёт не той точности, я имел ввиду, что например число
12312312312312.12312312312
хранится в типе double как 12312312312312.123047 а в таблице оно же хранится в научном виде:
1.231231e+13
если преобразовать назад, то точность получаеться вобще никакая, а мне надо чтоб в таблице число хранилось по аналогу сишного double
Чего-то тут не то. Не может в 8-байтном IEEE double храниться с 20 значимыми разрядами (максимум 16). Но и 7 разрядов - мало. Возможно расчет производится с точностью real, а возможно просто неверно отображается на клиенте.
Если надо гарантированную точность - следует использовать numeric/decimal. Но они медленнее считаются.
...
Рейтинг: 0 / 0
19.12.2005, 09:40
    #33443424
Funny_Falcon
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Округление типов
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
create table flt
( f float);

insert into flt values( 1 . 234567890123456789 );
insert into flt values( 12312312312312 . 12312312312 );

select * from flt;
         flt
----------------------
 1 . 23456789012346 
 12312312312312 . 1 

А в чем проблема то? У меня все пучком. Выбирал в pgAdmin III 1.4.0.
...
Рейтинг: 0 / 0
19.12.2005, 09:41
    #33443427
Funny_Falcon
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Округление типов
Может это твой клиент брешет?
...
Рейтинг: 0 / 0
21.12.2005, 21:21
    #33450597
Hordi
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Округление типов
А почему не использовать numeric(X,Y)
Y - и есть до скольки знаков округлять...
...
Рейтинг: 0 / 0
22.12.2005, 14:41
    #33452142
kolobok0
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Округление типов
Funny_FalconМожет это твой клиент брешет?

поддерживаю мыслю...
для проверки конвертатора клиента - достаточно на серваке попросить тип строку...


с уважением
(круглый)
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Округление типов / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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