postgresql后缀.00当舍入产生整数

时间:2015-06-23 11:38:04

标签: postgresql format rounding

我使用postgresql 9.3。当我舍入整数时,我希望通过后缀.00获得结果。

SELECT ROUND(12345, 2) //Result:12345

我如何获得像12345.00这样的结果

我发现像TO_CHAR这样的数字格式化函数可以生成这样的结果。

SELECT TO_CHAR(ROUND(12345, 2), '99999D99') // 12345.00 

有没有办法在数字数据类型中获得结果?

2 个答案:

答案 0 :(得分:1)

这个答案有5个段落。

这个答案也有5.0段。或5.000。

此答案中的段落数量不会改变,具体取决于您是说5还是5.00,只是用于表示数字的字符串。

ROUND返回一个数字,而不是一个字符串,所以你不能说它有或没有后缀,因为数字没有足够的。 确实具有2的精度,例如我在pgAdmin III上尝试将其显示为12345.00,但这取决于用于检查精度的值的工具,而不是数字。

您可以使用val强制将值val::numeric(1000, 2)强制为精度,依此类推,但这已由ROUND完成,因此仍然需要给定工具是否支付注意。

答案 1 :(得分:0)

不,你不能也没有意义。您所追求的是数字的某个表示,这正是to_char()函数的作用。 PG不关心.00后缀,无论如何都是内部的所有位。

但是,如果您想使用实数的完全表示,则应使用numeric data type和适当的修饰符,例如:

12345::numeric(7,2)

请注意,numeric数据类型与integerdouble等其他数字类型相比非常慢。