PostgreSQL将尾随零添加到数字
最近我将DB迁移到PostgreSQL,它有一些列定义为数字(9,3)和数字(9,4).在测试应用程序时,我发现当数据保存到这些列时,会在插入的值中添加尾随零.我正在使用Hibernate,我的日志显示为预准备语句构建的正确值.
我插入的数据示例在数字(9,3)列中为0.75,存储的值为0.750.数字(9,4)列的另一个示例:我插入值12,DB保持12.0000. 我发现了这个相关的问题:postgresql numeric type without trailing zeros.但它没有提供解决方案,除了引用9.x文档说没有添加尾随零.从这个问题,答案引用了文件(我也读过),其中说:
但是,就像那个问题海报一样,我看到添加了尾随零. Hibernate在日志中生成的原始插入不会显示这个额外的行李.所以我假设它是一个我没有正确设置的PostgreSQL,我只是找不到我是怎么弄错的.
如果指定精度和比例,Pg将填充到该精度和比例.
regress=> SELECT '0'::NUMERIC(8,4); numeric --------- 0.0000 (1 row) 没有办法把它关掉.它仍然是相同的数字,精度由类型而不是值定义. 如果要使用值定义的精度,则必须使用无约束数字: regress=> SELECT '0'::NUMERIC,'0.0'::NUMERIC; numeric | numeric ---------+--------- 0 | 0.0 (1 row) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |