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