在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;
时间: 2024-10-25 19:35:57