前のページ|次のページ

ROUNDZ関数

第1引数を第2引数の最も近い倍数にゼロファジーを使用して丸めます。

カテゴリ: 切り捨て

構文

ROUNDZ(argument <, rounding-unit>)

必須引数

argument

丸める数値定数、変数または式です。

オプション引数

rounding-unit

丸め単位を指定する正の数値定数、変数または式です。

詳細

ROUNDZ関数は、第1引数を第2引数の最も近い倍数に丸めます。第2引数を省略すると、ROUNDZはrounding-unitにデフォルト値の1を使用します。

比較

ROUND、ROUNDEおよびROUNDZ関数は類似していますが、次の4点が異なります。
  • ROUNDは、第1引数が第2引数の最も近い2つの倍数のほぼ中間にある場合には絶対値が大きい方の倍数を返します。
  • ROUNDEは、第1引数が第2引数の最も近い2つの倍数のほぼ中間にある場合には偶数の倍数を返します。
  • ROUNDZは、第1引数が第2引数の最も近い2つの倍数のちょうど中間にある場合には偶数の倍数を返します。
  • 丸め単位が1よりも小さい場合や整数の逆数でない場合、ROUNDZによって返される結果は10進算術演算の結果と完全には一致しない可能性があります。通常、ROUNDとROUNDEは、結果が10進算術演算に一致するようにファジーと呼ばれる追加の計算を実行します。ROUNDZは、結果をファジー処理しません。

例1: ROUNDZ関数とROUND関数の結果の比較

次の例では、ROUNDZ関数によって返される結果とROUND関数によって返される結果を比較します。
data test;
   do i=10 to 17;
      Value=3.5 - 10**(-i);
      Roundz=roundz(value);
      Round=round(value);
      output;
   end;
   do i=16 to 12 by -1;
      value=3.5 + 10**(-i);
      roundz=roundz(value);
      round=round(value);
      output;
   end;
run;
proc print data=test noobs;
   format value 19.16;
run;
ROUNDZ関数とROUND関数の出力
ROUNDZ関数とROUND関数の出力

例2: ROUNDZ関数からの出力

SASステートメントとその結果を次に示します。
SASステートメント
結果
var1=223.456;
x=roundz(var1, 1);
put x 9.5;
 
223.00000
var2=223.456;
x=roundz(var2, .01);
put x 9.5;
 
223.46000
x=roundz(223.456, 100);
put x 9.5;
 
200.00000
x=roundz(223.456);
put x 9.5;
 
223.00000
x=roundz(223.456, .3);
put x 9.5;
 
223.50000

関連項目:

前のページ|次のページ|ページの先頭へ