PostgreSQL在数字后面加上零

verbyk1924

最近,我将数据库迁移到PostgreSQL,其中有一些定义为numeric(9,3)和的numeric(9,4)在测试应用程序时,我发现当数据保存到这些列时,尾随零被添加到插入的值中。我正在使用Hibernate,并且我的日志显示为准备好的语句构建的正确值。

我要插入的数据示例是列中的0.75numeric(9,3)存储的值是0.750numeric(9,4)列的另一个示例:我插入值12,并且DB保持12.0000

我发现了一个相关的问题:postgresql数字类型,不带尾随零但是,除了引用9.x文档(未添加尾随零)之外,它没有提供其他解决方案。在这个问题上,答案引用了文档(我也阅读过),其中说:

数值物理存储,没有任何额外的前导或尾随零。因此,声明的列的精度和小数位数是最大值,而不是固定分配。

但是,就像问题海报一样,我看到添加了尾随零。Hibernate在日志中生成的原始插入内容不会显示此多余的行李。因此,我假设这是我未正确设置的PostgreSQL东西,只是找不到我怎么弄错了。

verbyk1924

如果我在这种情况下正确理解“胁迫”,我想就是这样。这来自PostgreSQL文档:

可以配置数字列的最大精度和最大比例。要声明数值类型的列,请使用以下语法:

NUMERIC(precision, scale)

精度必须为正,小数位数为零或正。或者:

NUMERIC(precision)

选择0的小数位数。

NUMERIC

不具有任何精度或小数位数的列会创建一列,其中可以存储任何精度和小数位数的数值,但不超过精度的实施限制。这种类型的列不会将输入值强制转换为任何特定的小数位数而具有声明的小数位数的数字列将将输入值强制转换为该小数位。

大胆强调我的。

因此,稍后在同一部分中产生误导

数值物理存储,没有任何额外的前导或尾随零。因此,列的声明精度和小数位数是最大值,而不是固定分配

再次大胆强调我的观点。

精度部分可能是这样,但是由于在定义比例时会强制将小数位,因此将尾随零添加到输入值中以满足小数位定义(如果太大,我会假定它会被截断)。

我正在使用精度,比例尺定义来实施约束。正是在DB插入期间,将尾随零添加到数字小数位数,这似乎支持强制转换,并且与不添加尾随零的语句产生冲突。

正确与否,做出选择后,我不得不在代码中处理问题。对我而言幸运的是,受影响的属性非常BigDecimal容易,因此剥离尾随零是很容易的(尽管不够优雅)。如果有人建议不要让PostgreSQL在插入时将尾随零添加到数字刻度上,那么我可以接受。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如果数字小于10,请在数字后面加上零?

来自分类Dev

如果数字小于10,请在数字后面加上零?

来自分类Dev

Android Regex-如何在数字后面加上连字符?

来自分类Dev

Android Regex-如何在数字后面加上连字符?

来自分类Dev

jquery在数字后面加值

来自分类Dev

彩色圆圈背景不显示在数字后面

来自分类Dev

在数字后面递归匹配每个非数字字符

来自分类Dev

当使用“%ld”时,“ D”出现在数字后面

来自分类Dev

按utcstamp升序排序不起作用-数字后面缺少零(Pyspark)

来自分类Dev

无符号数在数字后附加零时显示不同的结果

来自分类Dev

如果 '&' 没有紧跟在数字后面,则匹配 9 位数字的正则表达式

来自分类Dev

如何“舍入”数字,通过在 javascript 中的第二位数字后面放零

来自分类Dev

为什么打印后跟在数字后面的“字符串状”值会被忽略?

来自分类Dev

user_code 的 PHP 正则表达式,其中字母必须跟在数字后面

来自分类Dev

只允许在字母后面加上数字?

来自分类Dev

在数据字后面添加序列号

来自分类Dev

HTML TextBox数字后面的永久文本

来自分类Dev

如何提取关键字后面没有的数字

来自分类Dev

在Ruby中查看数字,并在数字后附加r

来自分类Dev

在数字中找到零

来自分类Dev

在数字后在python中拆分字符串

来自分类Dev

使用moment.js在数字后添加天

来自分类Dev

在数字后加字母的名称是什么?

来自分类Dev

python 仅在数字后输出特定字符

来自分类Dev

在数字后打印测量不确定度

来自分类Dev

在数字较低的数字中添加零

来自分类Dev

仅在不带数字或数字后面的情况下匹配

来自分类Dev

在数字python前面加零

来自分类Dev

正则表达式以匹配空格和数字后面的单词

Related 相关文章

  1. 1

    如果数字小于10,请在数字后面加上零?

  2. 2

    如果数字小于10,请在数字后面加上零?

  3. 3

    Android Regex-如何在数字后面加上连字符?

  4. 4

    Android Regex-如何在数字后面加上连字符?

  5. 5

    jquery在数字后面加值

  6. 6

    彩色圆圈背景不显示在数字后面

  7. 7

    在数字后面递归匹配每个非数字字符

  8. 8

    当使用“%ld”时,“ D”出现在数字后面

  9. 9

    按utcstamp升序排序不起作用-数字后面缺少零(Pyspark)

  10. 10

    无符号数在数字后附加零时显示不同的结果

  11. 11

    如果 '&' 没有紧跟在数字后面,则匹配 9 位数字的正则表达式

  12. 12

    如何“舍入”数字,通过在 javascript 中的第二位数字后面放零

  13. 13

    为什么打印后跟在数字后面的“字符串状”值会被忽略?

  14. 14

    user_code 的 PHP 正则表达式,其中字母必须跟在数字后面

  15. 15

    只允许在字母后面加上数字?

  16. 16

    在数据字后面添加序列号

  17. 17

    HTML TextBox数字后面的永久文本

  18. 18

    如何提取关键字后面没有的数字

  19. 19

    在Ruby中查看数字,并在数字后附加r

  20. 20

    在数字中找到零

  21. 21

    在数字后在python中拆分字符串

  22. 22

    使用moment.js在数字后添加天

  23. 23

    在数字后加字母的名称是什么?

  24. 24

    python 仅在数字后输出特定字符

  25. 25

    在数字后打印测量不确定度

  26. 26

    在数字较低的数字中添加零

  27. 27

    仅在不带数字或数字后面的情况下匹配

  28. 28

    在数字python前面加零

  29. 29

    正则表达式以匹配空格和数字后面的单词

热门标签

归档