3

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

4

1 回答 1

3

您可以使用

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

作为您的格式化模型。

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

于 2019-02-09T07:04:37.360 回答