マクロ変数に数値を格納したい

[OS]ALL
[リリース]
[キーワード]

[質問]

マクロ変数に小数点数を格納し、加算・減算等の算術演算を行いたいのですが、可能でしょうか。

[回答]

原則として、SAS マクロ変数値は文字値として処理されます。 %EVAL関数を使うと、整数としての演算は行えます。 小数部を持つ値の三術演算が必要な場合は、DATAステップで演算を行い、PUT関数と適切なフォーマットを使用して文字値に変換し、 その結果をマクロ変数に変換する必要があります。

%let A=2.5;
%let B=3.7;

data _null_;
 A=symget('A');
 B=symget('B');
 C=A+B;
 call symput('C',trim(left(put(C,best.))));
run;
%put C;
:
: