Oracle中绝对值小于1的小数如何显示小数点前面的0

时间:2022-09-15 10:40:50

在oracle 中 如果是绝对值小于1的小数,则只会显示小数点后面的值,小数点前面的0就会被忽略掉,例如: 0.1  在oracle中会被显示为 .1

如何解决此类问题:

x=0.2

TO_CHAR('fm9999990.9999',x) 输出值为 0.2

但是现在出现了一个问题,如果是x=10,那么跟显示就会为10. ,在后面会多一个小数点,这样很不好看,怎么才能显示实际的输入,在网上找了ORACLE 的另外一个字符处理函数rtrim,所以现在这些按照如下的更改即可:
x =10
RTRIM(TO_CHAR(‘fm9999990.9999′,x) ,’.') → 10
这样处理过以后,如果是整数正常显示为整数,如果是小数则是以保留4位精度显示。

方案二:
另外通过如下方法可以处理:
select 

DECODE( TRUNC(:decimal_number),
              REPLACE(TO_CHAR(:decimal_number),'.','TO_CHAR(:decimal_number)
             )
from dual;