我需要格式化百分比的帮助。我格式化的最初原因是我希望将接近零的百分比显示为0.05%,而不是0.05%
所以我做到了:
IF (a.TOTAL <> 0 AND b.mkt <> 0) THEN
v_perc := TO_CHAR(ROUND(100-( a.TOTAL*100/ b.mkt),2),'00.99') || '%';
END IF;
v_perc
存储为varchar2(50)
,但是格式并不总是我需要的。
当百分比低于10%时。我得到08.52或00.35%。但是我想要一种输出格式为0.52%,5.32%,55%,0%,100%的格式。我尝试使用000.999
,但是会得出000.000%。
答案 0 :(得分:2)
您可以使用
TO_CHAR(<your_value>,'fm990D00','NLS_NUMERIC_CHARACTERS = ''.,''')
作为您的格式化模型。
它可以满足您的需求,最高为100
(100%
)。除了百分比外,如果在其他情况下(例如11,115.54
)需要更多数字,则可以将第二个参数转换为'fm999G990D00'
。