postgresql 后缀 .00 当 round 产生整数时
postgresql suffixing .00 when round produces whole numbers
我用postgresql 9.3
。当我对整数进行四舍五入时,我想通过后缀 .00 获得结果。
SELECT ROUND(12345, 2) //Result:12345
我怎样才能得到像 12345.00 这样的结果
我发现像 TO_CHAR
这样的数字格式化函数可以生成这样的结果。
SELECT TO_CHAR(ROUND(12345, 2), '99999D99') // 12345.00
有没有办法获取数值数据类型本身的结果?
不,你不能,也没有意义。您所追求的是某个数字的 表示 ,而这正是 to_char()
函数的作用。 PG不在乎一个.00
后缀,反正里面都是位
但是,如果您想使用 精确 表示实数,则应使用带有适当修饰符的 numeric
data type,例如:
12345::numeric(7,2)
请记住,与 integer
和 double
等其他数字类型相比,numeric
数据类型非常慢。
这个答案有 5 个段落。
这个答案也有 5.0 个段落。或者 5.000.
此答案中的段落数不会根据您说的是 5 还是 5.00 而改变,只是用于表示数字的字符串。
ROUND
returns 一个数字,不是一个字符串,所以你不能说它有或没有后缀,因为数字没有后缀。它 的精度为 2
,例如我在 pgAdmin III 上尝试它时显示为 12345.00
,但这取决于与检查精度的值一起使用的工具,而不是数字。
您可以使用 val::numeric(1000, 2)
等将值 val
强制为精度,但这已经由 ROUND
完成,因此仍然是给定工具是否可用的问题会注意的。
我用postgresql 9.3
。当我对整数进行四舍五入时,我想通过后缀 .00 获得结果。
SELECT ROUND(12345, 2) //Result:12345
我怎样才能得到像 12345.00 这样的结果
我发现像 TO_CHAR
这样的数字格式化函数可以生成这样的结果。
SELECT TO_CHAR(ROUND(12345, 2), '99999D99') // 12345.00
有没有办法获取数值数据类型本身的结果?
不,你不能,也没有意义。您所追求的是某个数字的 表示 ,而这正是 to_char()
函数的作用。 PG不在乎一个.00
后缀,反正里面都是位
但是,如果您想使用 精确 表示实数,则应使用带有适当修饰符的 numeric
data type,例如:
12345::numeric(7,2)
请记住,与 integer
和 double
等其他数字类型相比,numeric
数据类型非常慢。
这个答案有 5 个段落。
这个答案也有 5.0 个段落。或者 5.000.
此答案中的段落数不会根据您说的是 5 还是 5.00 而改变,只是用于表示数字的字符串。
ROUND
returns 一个数字,不是一个字符串,所以你不能说它有或没有后缀,因为数字没有后缀。它 的精度为 2
,例如我在 pgAdmin III 上尝试它时显示为 12345.00
,但这取决于与检查精度的值一起使用的工具,而不是数字。
您可以使用 val::numeric(1000, 2)
等将值 val
强制为精度,但这已经由 ROUND
完成,因此仍然是给定工具是否可用的问题会注意的。