postgresql to_char浮点数的格式

时间:2014-10-11 19:01:43

标签: postgresql

我有一个介于0和1之间的浮点数,例如0.3420.34等。我需要这样格式化:.XXX,总是三位数精度(尾随零)并且从不是前导零(小数点之前。我有这个:

CREATE OR REPLACE FUNCTION format_float(real) RETURNS text AS
$BODY$

BEGIN
return to_char($1, '9.999');
END;

$BODY$
LANGUAGE plpgsql VOLATILE  COST 100;

但它用前导空格填充值。我怎样才能使这个工作?我在'.999'电话中尝试to_char,但这也无效,产生.###

1 个答案:

答案 0 :(得分:0)

简单转换为an arbitrary precision number会对你有用吗?

SELECT 0.3456::numeric(4,3);

在函数内部(顺便说一下,更好地使用SQL函数,因为优化器可以内联它们):

CREATE FUNCTION ff(float) RETURNS numeric(4,3) AS $ff$
    SELECT $1::numeric(4,3);
$ff$ LANGUAGE sql;