Какой тип данных для чисел я должен выбрать в PostgreSQL? - PullRequest
0 голосов
/ 05 марта 2020

У меня есть столбец, в котором должны храниться различные числа. Проблема в том, что я не знаю, каким будет это число - int или float. Вот, например, возможные числа:

60073
75000
107.14
26.1532994
1293

Мне показалось, что в моем случае numeric будет лучшим вариантом, потому что в документации написано:

цифра c переменная, заданная пользователем точность, точная

Все хорошо, когда я вставляю int, но когда я вставляю float, они увеличиваются до максимально возможной точности (правильно, пожалуйста, если я не прав). Вот пример чисел, которые я вставляю:

107.14
3600.0
-157.8829434

Как они отображаются в базе данных:

107.1400000000000005684341886080801486968994140625
3600
-157.882058499999999412466422654688358306884765625

Как это так? Я полностью сбит с толку.

Мне нужно хранить числа так, как я их вставляю, но они не должны быть строками.

Если это важно, тогда я вставляю эти данные с библиотекой для Python asyncpg , поэтому я добавил тег Python, возможно, это проблема.

1 Ответ

2 голосов
/ 05 марта 2020

Если вы хотите хранить числа с плавающей запятой двойной точности, double precision - лучший тип данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...