我有一列应存储各种数字。问题是我不知道这个数字是什么-int
或float
。例如,这里是可能的数字:
60073
75000
107.14
26.1532994
1293
在我看来,numeric
是最好的选择,因为文档说:
数字变量用户指定的精度,精确
插入int
时一切都很好,但是插入float
时,它们会提高到最大可能的准确性(如果我错了,请正确。)这是我插入的数字的示例:
107.14
3600.0
-157.8829434
它们在数据库中的显示方式:
107.1400000000000005684341886080801486968994140625
3600
-157.882058499999999412466422654688358306884765625
怎么回事?我完全感到困惑。
我需要以插入数字的方式存储数字,但数字不应为字符串。
如果这很重要,那么我将这些数据插入Python asyncpg库中,所以这就是为什么我添加Python标记的原因,也许就是这个问题。
如果要存储双精度浮点数,则double precision
是最佳数据类型。