我尝试将数字格式化为数十亿,数百万和数千,如下所示
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)
答案 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;