我有一个计算天数的函数 从双重中选择(x * 0,5)。 我的问题是,当x = 1时,我得到.5而不是0.5。我想得到的是格式为0.5,1,1.5,2,2.5的数字.. 你能帮我个忙吗?
答案 0 :(得分:0)
尝试使用:
select TO_CHAR(x * 0,5, '990,99') from dual
修改强>
尝试创建一个这样的函数:
create function getDecimalFormat(x in number)
return varchar2
as
begin
return RTRIM(TO_CHAR(x, 'FM999999999999990.99'), '.');
end;
答案 1 :(得分:0)
如果您始终要保留小数点后一位,请使用to_char四舍五入
select TO_CHAR(28.324, '90.9') from dual;
返回
28.3
和
select TO_CHAR(28, '90.9') from dual;
返回
28.0
希望这会有所帮助
答案 2 :(得分:0)
我知道这很旧,但是我做了以下工作,其中x是数据类型NUMBER(20,3)
CASE WHEN x < 1 THEN '0'
ELSE '' END
|| to_char(x)
我不希望任何尾随零,但是如果x为0.99或0.5,我确实想要一个前导零。
所以我只使用常规的to_char,如果x小于1,则添加前导零。