postgresql圆分区

时间:2015-07-10 21:02:26

标签: sql postgresql

我想将值除以并将它们四舍五入到小数点后8位但我发现某些除法以科学记数法返回。

如果没有科学记数法,我怎么能总是得到圆分?

  • select round( 123/100000000::decimal, 8 )

    按预期返回0.00000123

  • select round( 1/100000000::decimal, 8 )

    返回1e-8但是......我期待0.00000001

如何将1/100000000舍入到8位小数并返回 0.00000001

sql fiddle:http://sqlfiddle.com/#!15/9eecb7db59d16c80417c72d1e1f4fbf1/1534

感谢您的帮助。 最好,

2 个答案:

答案 0 :(得分:2)

评论太长了。

实际上,当我使用pgadmin在Postgres 9.3.4中尝试你的代码时,都返回你想要的值。值以指数表示法。因此,我怀疑这是您的应用程序的问题,而不是数据库。

一种简单的检查方法是将值作为字符串:

select round( 1/100000000::decimal, 8 )::text

这应该返回指数表示法。

答案 1 :(得分:0)

可能第二种情况超出了精确范围8。

您可以查看此问题Selecting floating point numbers in decimal form

您使用的是什么版本,因为在pgAdmin 9.2中我得到了不同的结果

enter image description here