ROUND 関数

目的

与えられた値を指定された桁で丸め、残りの桁をゼロで埋めます。

構文

ROUND(x,k)

パラメーター

x は丸める固定小数点算術値または固定小数点ピクチャ値、k は値 x を丸める桁を指定する整数定数です。

説明

固定小数の丸め
ROUND 関数は、与えられた値 x を指定された桁で丸め、k+1 から q (q はスケール係数) までをゼロで埋めます。xk 番目の桁が最も近い整数になるように x を丸めた値が結果として返されます。たとえば、引数が 8.77 で小数点以下 1 桁に丸める場合、結果は 8.80 になります。

最初の引数 x は式です。丸める値が負の場合は、絶対値が丸められ、符号は変更されません。

2 番目の引数 k は、符号なしの数字でも符号付きの数字でもかまいません。k が正の場合は、最初の引数の 10 進小数点 (または 2 進小数点) の右にある k 番目の桁で丸めが行われます。k がゼロの場合は、最初の引数の 10 進小数点 (または 2 進小数点) の左にある最初の桁で丸めが行われます。k が負の場合は、最初の引数の 10 進小数点 (または 2 進小数点) の左にある (1 - k) 番目の桁で丸めが行われます。

DCL (X,K) DECIMAL FIXED (7,4); 
X = 123.7261;
K = ROUND(X,3);       /* K IS NOW 123.7260 */ 
K = ROUND(X,2);       /* K IS NOW 123.7300 */
K = ROUND(X,1);       /* K IS NOW 123.7000 */
K = ROUND(X,0);       /* K IS NOW 124.0000 */
X = -123.7261;
K = ROUND(X,2);       /* K IS NOW -123.7300 */
K = ROUND(X,0);       /* K IS NOW -124.0000 */
K = ROUND(X,-1);      /* KIS NOW -120.0000 */
X = 9.9999;
K = ROUND(X,0);       /* K IS NOW 10.0000 */
dcl x float dec(16) init( 6.283185307179586E+0003 );

put skip list( round(x,5) );  /* 6.283200000000000E+0003 */
put skip list( round(x,6) );  /* 6.283190000000000E+0003 */
put skip list( round(x,7) );  /* 6.283185000000000E+0003 */
put skip list( round(x,8) );  /* 6.283185300000000E+0003 */
put skip list( round(x,9) );  /* 6.283185310000000E+0003 */
put skip list( round(x,10) ); /* 6.283185307000000E+0003 */
put skip list( round(x,11) ); /* 6.283185307200000E+0003 */
IEEE 浮動小数 (DFP) の丸め
IEEE 浮動小数点 10 進値 (DFP) の結果の精度は、ソース引数の精度と同じになります。

固定小数の丸めの場合は n 桁目であるのに対して、浮動小数の丸めは n 桁目の小数位で行われます。

    dcl x float dec(16) init( 6022.140857 );

    put skip list( round(x,5) );
    put skip list( round(x,6) );
    put skip list( round(x,7) );
    put skip list( round(x,8) );
    put skip list( round(x,9) );
    put skip list( round(x,10) );

出力は次のようになります。

6.022100000000000E+0003
6.022140000000000E+0003
6.022141000000000E+0003
6.022140900000000E+0003
6.022140860000000E+0003
6.022140857000000E+0003
IEEE 浮動バイナリの丸め
IEEE 浮動小数点バイナリ値の丸めの結果は、ソース引数と同じになります。

制約事項

なし