Sas 图片格式负数

Sas 图片格式负数,sas,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 = '

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

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;
但是,如何将此设置扩展到负数


例如
(1.2M)
(353K)

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


使用
我明白了。诀窍就在这个符号上。没有它-1e9--1e6将返回错误。默认值=9我想这是为了简单起见?选项
default
表示格式的默认长度。使用格式时,不必指定长度,例如
bmk\u fmt.
。它将与
bmk\u fmt9.
相同。
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;