我使用postgresql 9.3
。当我舍入整数时,我希望通过后缀.00获得结果。
SELECT ROUND(12345, 2) //Result:12345
我如何获得像12345.00这样的结果
我发现像TO_CHAR
这样的数字格式化函数可以生成这样的结果。
SELECT TO_CHAR(ROUND(12345, 2), '99999D99') // 12345.00
有没有办法在数字数据类型中获得结果?
答案 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
数据类型与integer
和double
等其他数字类型相比非常慢。