在postgresql中划分大数字

时间:2017-07-06 19:46:26

标签: postgresql decimal precision

我正在使用18位小数,我已经决定将数字保存为" NUMERIC(36)"在数据库中

现在我想通过以下部门来展示它

select (5032345678912345678::decimal  / power(10, 18)::decimal )::decimal(36,18)

结果 5.032345678912345700

预期结果 5.032345678912345678

如果我使用16位小数的精度

,它可以工作
select (50323456789123456::decimal  / power(10, 16)::decimal )::decimal(36,16)

结果5.0323456789123456

知道如何使用18位小数而不会丢失信息吗?

1 个答案:

答案 0 :(得分:1)

使用常量类型decimal(38,18)

select 5032345678912345678::decimal / 1000000000000000000::decimal(38,18);

       ?column?       
----------------------
 5.032345678912345678
(1 row) 

常数应该快一点。但是同样的演员阵容也适用于power(10,18)