我试图将值格式化为整数(删除小数),但当值为负数小于0时,它显示-0而不是0。有没有办法将它显示为0?
select to_char(-0.09,'9,999,999,999,999,990') from dual;
答案 0 :(得分:4)
TO_CHAR只是格式化数字,而不是将其四舍五入。因此,首先使用ROUND,然后根据需要进行格式化。
select to_char(round(-0.09),'9,999,999,999,999,990') from dual;
答案 1 :(得分:0)
如果要删除小数,请尝试以下解决方案。
SELECT TO_CHAR(TRUNC(-0.09),'9,999,999,999,999,990') FROM DUAL;
如果您想要对值进行舍入,请使用Noel建议的解决方案。理想情况下,舍入值是合乎逻辑的,而不仅仅是删除小数。