SELECT RTRIM(TO_CHAR(255.000, 'FM999999990.9999'), '.') REST1,
RTRIM(TO_CHAR(255.66405, 'FM999999990.9999'), '.') REST2,
RTRIM(TO_CHAR(255.66404, 'FM999999990.9999'), '.') REST3,
RTRIM(TO_CHAR(0.66404, 'FM999999990.9999'), '.') REST4
FROM DUAL;
SELECT DECODE(SUBSTR(.5, 1, 1), '.', '0' || .5, 'value') REST1,
DECODE(SUBSTR(255.000, 1, 1), '.', '0' || .5, 'value') REST2,
DECODE(SUBSTR(122, 1, 1), '.', '0' || .5, 'value') REST3,
DECODE(SUBSTR(122, 1, 1), '.', '0' || .5, 'value') REST4
FROM DUAL;
使用RTRIM与TO_CHAR结合处理小数点问题,FM格式化会固定小数的精度
使用DECODE则能保留原数据的精度
有利有弊,根据实际需要取舍。