Sql Postgres-始终在小数点后显示数字

Sql Postgres-始终在小数点后显示数字,sql,postgresql,Sql,Postgresql,列的值为0.039 我总是希望它显示为0.0390 我们如何在博士后中实现这一点?您可以使用,如@Joachim提供的。但是,根据实际需求,这可能有一些警告 对于初学者,您可能希望也可能不希望为 抑制尾随零和填充空格 在舍入、小数点悬空、显示的最大位数等方面也存在潜在问题 我建议换个演员。在您的情况下,刻度为4,精度为允许的最大位数。如果你没有特别的限制,就用一个大数字。比如: SELECT nr::numeric(30,4) 这样做还有一个额外的好处,即结果仍然是数字数据类型,而不是返回文本

列的值为0.039

我总是希望它显示为0.0390

我们如何在博士后中实现这一点?

您可以使用,如@Joachim提供的。但是,根据实际需求,这可能有一些警告

对于初学者,您可能希望也可能不希望为

抑制尾随零和填充空格

在舍入、小数点悬空、显示的最大位数等方面也存在潜在问题

我建议换个演员。在您的情况下,刻度为4,精度为允许的最大位数。如果你没有特别的限制,就用一个大数字。比如:

SELECT nr::numeric(30,4)
这样做还有一个额外的好处,即结果仍然是数字数据类型,而不是返回文本的_char,因此按ORDER BY排序的效果与预期的一样。考虑:

小提琴

相关的:


对于_CHAR0.039,'0.9999'应该这样做@JoachimIsaksson:你应该这样回答,这样这个问题就可以标记为已解决
SELECT nr
     , nr::numeric(30,4) AS cast
     , to_char(nr, 'FM9999999990.9999') AS to_char0
     , to_char(nr, '0.9999') AS to_char1
     , to_char(nr, '0.0000') AS to_char2
     , to_char(nr, 'FM0.9999') AS to_char3
     , to_char(nr, 'FM0.0000') AS to_char4
FROM  (
   VALUES
  (1, numeric '123')
, (2, 1.2)
, (3, 0.00000)
, (4,-0.039)
, (5, 0.039)
, (6, 0.0390)
, (7, 0.039000)
, (8, 0.0391234)
,(9, 123456789.039123456789)
,(10, 123456789.039123456789123456789)
   ) t(id, nr)
ORDER  BY id;
nr | cast | to_char0 | to_char1 | to_char2 | to_char3 | to_char4 ------------------------------: | -------------: | :------------- | :------- | :------- | :------- | :------- 123 | 123.0000 | 123. | #.#### | #.#### | #.#### | #.#### 1.2 | 1.2000 | 1.2 | 1.2000 | 1.2000 | 1.2 | 1.2000 0.00000 | 0.0000 | 0. | 0.0000 | 0.0000 | 0. | 0.0000 -0.039 | -0.0390 | -0.039 | -0.0390 | -0.0390 | -0.039 | -0.0390 0.039 | 0.0390 | 0.039 | 0.0390 | 0.0390 | 0.039 | 0.0390 0.0390 | 0.0390 | 0.039 | 0.0390 | 0.0390 | 0.039 | 0.0390 0.039000 | 0.0390 | 0.039 | 0.0390 | 0.0390 | 0.039 | 0.0390 0.0391234 | 0.0391 | 0.0391 | 0.0391 | 0.0391 | 0.0391 | 0.0391 123456789.039123456789 | 123456789.0391 | 123456789.0391 | #.#### | #.#### | #.#### | #.#### 123456789.039123456789123456789 | 123456789.0391 | 123456789.0391 | #.#### | #.#### | #.#### | #.####