如何格式化百分比?

How to format percentage?

我在格式化百分比方面需要帮助。我格式化的最初原因是我想将接近零的百分比显示为 0.05% 而不是 .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%.

您可以使用

TO_CHAR(<your_value>,'fm990D00','NLS_NUMERIC_CHARACTERS = ''.,''')

作为您的格式化模型。

它最多可以满足您的需求 100( 100% )。除了百分比之外,如果您在其他情况下需要更多数字,例如 11,115.54,您可以将第二个参数转换为 'fm999G990D00'.