删除除两个尾随零和千位分隔符之外的所有内容

Remove all but two trailing zeros AND thousand separator

Postgres 版本 11.7

我正在尝试删除尾随零 小数点后两位 ,同时还在我的结果集中添加千位分隔符。

示例 1 生成了所需的结果;删除所有尾随零:

SELECT to_char(54354.0010, 'FM99 999 999 990.999999'); --> returns 54 354.001

示例 2 说明了问题:

SELECT to_char(54354.0000, 'FM99 999 999 990.999999'); --> returns 54 354.

示例 2 中删除小数点后的所有零。
但期望的结果是:

54 354.00

结果应始终至少保留两位小数,无论它们是否为零。

这会产生您想要的结果:

SELECT to_char(54354.0000, 'FM99 999 999 990.009999')

两个0代替小数点后的9
The manual:

9 digit position (can be dropped if insignificant)
0 digit position (will not be dropped, even if insignificant)