最近我将数据库迁移到PostgreSQL,其中有一些列定义为numeric(9,3)和numeric(9,4).在测试应用程序时,我发现当数据保存到这些列时,会在插入的值中添加尾随零.我正在使用Hibernate,我的日志显示为预准备语句构建的正确值.
我插入的数据示例在列中为0.75,numeric(9,3)存储的值为0.750.该numeric(9,4)列的另一个示例:我插入值12,DB保持12.0000.
我发现了这个相关的问题:postgresql数字类型没有尾随零.但它没有提供解决方案,除了引用9.x文档说没有添加尾随零.从这个问题,答案引用了文件(我也读过),其中说:
数字值是物理存储的,没有任何额外的前导或尾随零.因此,列的声明精度和比例是最大值,而不是固定分配.
但是,就像那个问题海报一样,我看到添加了尾随零.Hibernate在日志中生成的原始插入不会显示这个额外的行李.所以我假设它是一个我没有正确设置的PostgreSQL,我只是找不到我是怎么弄错的.