У меня есть столбец, в котором должны храниться различные числа. Проблема в том, что я не знаю, каким будет это число - 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, возможно, это проблема.