@ROUND

Essbaseの@ROUND計算関数は、数式を指定された桁数に丸めます。

構文

@ROUND (expression, numDigits [, compatibility])

パラメータ

expression

単一メンバー仕様、変数名、またはその他の数式。

numDigits

単一メンバー仕様、変数名、または整数値を提供するその他の数式。numDigitsが0または正の数の場合、expressionnumDigitsで指定した小数点以下の桁数に丸められます。numDigitsが負の値の場合、expressionは、numDigitsの絶対値の10乗に最も近い値に丸められます。例:

@ROUND(1234, -2) = 1200

numDigitsのデフォルト値は0です。

compatibility

オプションの下位互換性設定。エラーのマージンを丸めるために使用するアルゴリズムを選択します。

可能なキーワード値:

  • COMPATPREV11121: リリース11.1.2.1まで使用されていたオリジナルの丸めアルゴリズム。数値の整数部分は、誤差の丸めマージンを生成するために使用されます。制約事項: 集約値は小数点以下15桁までしか正確ではありません。

    2進数で完全に表現できるのは一部の10進数のみです。たとえば、値1234.725がロードされた場合、1234.72499999999991としてバイナリで表せます。COMPATPREV11121アルゴリズムを使用して、この数値を小数点以下2桁に丸めると、1234.72が返されますが、1234.73を使用することもできます。

  • COMPATPREV11123: リリース11.1.2.1と11.1.2.3の間に使用されていた代替丸めアルゴリズム。前述の表現エラーを無効にするためのものです。精度を高めるために誤差の丸めマージンが変更され、元のアルゴリズムとは異なる結果を返す場合がありました。

指定されていない場合、デフォルトの丸めアルゴリズムは、C言語の丸め関数で使用される標準と一致するようになりました。CのRound関数は一般的な丸めアルゴリズムであり、プラットフォーム間で広く使用されています。floor関数とceiling関数の組込み構造を使用して、numDigitsに応じて、実数をそれぞれ最大の前の整数または最小の後続の整数にマップします。

次の例は、Sample Basicキューブに基づいています:

SET UPDATECALC OFF;
Profit = @ROUND("Profit_%", 1);

この例では、次のレポートが作成されます:

                          Market Product 
                   Profit_%                 Profit         
            Jan     Feb     Mar      Jan      Feb      Mar
            ===     ===     ===      ===      ===      === 
Scenario   21.37   19.09   18.46    21.4      19.1    18.5 

関連項目