浮動小数点演算を使用して、算術演算式や論理式を評価します。
種類: | マクロ関数 |
参照項目: | %EVAL関数 |
評価する演算式または論理式を指定します。
変換後の値の型を指定します。%SYSEVALFの戻り値は、ここに指定された値の型に変換されます。変換後の値は、その型の値を必要とする他の式で使用できます。conversion-typeには次のいずれかを指定できます。
次のいずれかを返します。
%sysevalf(1/3,boolean) /* returns 1 */ %sysevalf(10+.,boolean) /* returns 0 */
式の結果に等しいかまたはそれより大きい最小の整数を表す文字値を返します。ただし、結果の値と、それに最も近い整数との差の絶対値が10
%sysevalf(1 + 1.1,ceil) /* returns 3 */ %sysevalf(-1 -2.4,ceil) /* returns −3 */ %sysevalf(-1 + 1.e-11,ceil) /* returns 0 */ %sysevalf(10+.) /* returns . */
式の結果に等しいかまたはそれより小さい最大の整数を表す文字値を返します。ただし、結果の値と、それに最も近い整数との差の絶対値が10
%sysevalf(-2.4,floor) /* returns −3 */ %sysevalf(3,floor) /* returns 3 */ %sysevalf(1.-1.e-13,floor) /* returns 1 */ %sysevalf(.,floor) /* returns . */
結果の整数部を表す文字値を返します(小数部を切り捨てます)。ただし、結果の値と、それに最も近い整数との差の絶対値が10
%put %sysevalf(2.1,integer); /* returns 2 */ %put %sysevalf(-2.4,integer); /* returns −2 */ %put %sysevalf(3,integer); /* returns 3 */ %put %sysevalf(-1.6,integer); /* returns −1 */ %put %sysevalf(1.-1.e-13,integer); /* returns 1 */
%macro figureit(a,b); %let y=%sysevalf(&a+&b); %put The result with SYSEVALF is: &y; %put The BOOLEAN value is: %sysevalf(&a +&b, boolean); %put The CEIL value is: %sysevalf(&a +&b, ceil); %put The FLOOR value is: %sysevalf(&a +&b, floor); %put The INTEGER value is: %sysevalf(&a +&b, int); %mend figureit; %figureit(100,1.597)
The result with SYSEVALF is:101.597 The BOOLEAN value is:1 The CEIL value is:102 The FLOOR value is:101 The INTEGER value is:101