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) );
説明
最初の引数 x は式です。丸める値が負の場合は、絶対値が丸められ、符号は変更されません。
2 番目の引数 k は、符号なしの数字でも符号付きの数字でもかまいません。k が正の場合は、最初の引数の 10 進小数点 (または 2 進小数点) の右にある k 番目の桁で丸めが行われます。k がゼロの場合は、最初の引数の 10 進小数点 (または 2 進小数点) の左にある最初の桁で丸めが行われます。k が負の場合は、最初の引数の 10 進小数点 (または 2 進小数点) の左にある (1 - k) 番目の桁で丸めが行われます。
例
固定小数の丸めの場合は n 桁目であるのに対して、浮動小数の丸めは n 桁目の小数位で行われます。
例
出力は次のようになります。