我正在使用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位小数而不会丢失信息吗?
答案 0 :(得分:1)
使用常量类型decimal(38,18)
:
select 5032345678912345678::decimal / 1000000000000000000::decimal(38,18);
?column?
----------------------
5.032345678912345678
(1 row)
常数应该快一点。但是同样的演员阵容也适用于power(10,18)
。