图片格式负数

时间:2017-02-01 02:38:33

标签: sas

我尝试将数字格式化为数十亿,数百万和数千,如下所示

proc format;
    picture bmk_fmt (round)
        low - 0 = '000,000,000,000)' (prefix='($')
        0 - 1e3 = '000,000,000,000' (prefix='$')
        1e3 - 1e6 = '000,000,000,009K' (mult=1e-3 prefix='$')
        1e6 - 1e9 = '000,000,000,009.9M' (mult=1e-5 prefix='$')
        1e9 - high = '000,000,000,009.9B' (mult=1e-8 prefix='$');
run;

但是,如何将此设置扩展为负数?

E.g (1.2M)& (353K)

1 个答案:

答案 0 :(得分:3)

您提供几乎所有信息来解决问题。 我只需要使用基本数学。

使用<符号可以排除范围内的值,例如0从负范围。

这是最终的解决方案。

proc format;
    picture bmk_fmt (round default=9)
        low - -1e9 = '009.9B)' (mult=1e-8 prefix='($')
        -1e9 <- -1e6 = '009.9M)' (mult=1e-5 prefix='($')
        -1e6 <- -1e3 = '009.9K)' (mult=1e-2 prefix='($')
        -1e3 <-< 0 = '009.9)' (prefix='($')
        0 -< 1e3 = '009.9' (prefix='$')
        1e3 -< 1e6 = '009.9K' (mult=1e-2 prefix='$')
        1e6 -< 1e9 = '009.9M' (mult=1e-5 prefix='$')
        1e9 - high = '009.9B' (mult=1e-8 prefix='$');
run;