Admin Production rocket
Current Publication

固定小数点データ

Enterprise Developer for Visual Studio 2017 (Japanese) V8.0
Rocket® Enterprise Developer (formerly a product of Micro Focus or formerly a product of Open Text) documentation, created before Rocket Software acquired certain products from OpenText, may include outdated references to "Micro Focus" or "OpenText", both of which are trademarks of OpenText or its affiliates. Rocket Software is not affiliated with Micro Focus or OpenText and has since rebranded these products as Rocket® products. You may also encounter outdated links in this documentation. If you do, please contact Rocket Support (support@rocketsoftware.com) for assistance.

固定小数点データ

固定小数点数は p 桁の数値です。固定小数点 10 進数では、そのうちの q 桁を小数として表現できます。固定小数点 2 進数は、常に整数 (q=0) です。次に例を示します。

DECLARE K FIXED BINARY(15); 
DECLARE D FIXED DECIMAL(7,2);

この例の K の値は、2 進 15 桁の固定小数点整数です。したがって、K は -32768 ~ +32767 (-(2**⊃15) ~ (2**⊃15)-1) の範囲の任意の値を保持できます。D の値は、10 進 7 桁の固定小数点数で、そのうちの 2 桁が小数です。したがって、D は -99999.99 ~ +99999.99 の範囲の任意の値を保持できます。

DECLARE U FIXED BINARY(16) UNSIGNED;

K の値は、2 進 16 桁の固定小数点整数です。したがって、K は 0 ~ 65,535 または 0 ~ (2** 16)-1 の範囲の任意の値を保持できます。

ほとんどのコンピューターでは 2 進整数を使用した場合に最も高い演算効率が得られるため、可能な限り固定長バイナリ変数を使用することをお奨めします。添字、文字列の長さ、DO 索引変数などには、固定長バイナリ変数を使用した方が効率が非常に高くなります。

固定長バイナリ変数のデフォルトの精度は、-longint コンパイラ オプションを使用して 15 から 31 に変更できます。詳細については、『Open PL/I ユーザー ガイド』を参照してください。

一般に、固定小数点 10 進値は、2 進数で表現した場合よりも格納に多くのビットを必要とし、計算が複雑になることもよくあります。一方で、外部形式との間の変換 (入出力時など) は固定小数点 10 進値の方が効率的です。また、場合によっては、固定小数点 10 進値を使用した方が 2 進表現よりも丸めエラーが少なくなる可能性があります。

固定小数点 10 進値の計算では、値が大きすぎてサポートされない場合、計算時に ERROR 状態のシグナルが発生します。固定小数点 2 進値の場合は、値が大きすぎてサポートされない場合でも計算時にエラーは発生せず、予期しない結果が生じる可能性があります。精度とスケールの規則については、「データ型変換」の章を参照してください。

10 進値と 2 進値の両方を含む演算の結果は、常に 2 進値になります。ただし、結果に小数部が含まれる場合は 10 進値になります。

固定小数点値を文字列またはビット文字列に変換する場合、変換後の長さは固定小数点値の精度 p で決まります。変換規則については、「データ型変換」の章を参照してください。

固定小数点値は、組み込み関数を使用して明示的に指定しない限り、丸められることはありません。桁数を超過する場合、固定小数点変数に割り当てる際に下位の桁が切り捨てられます。組み込み関数の CEIL、FLOOR、TRUNC、または ROUND を使用して、あらゆる種類の丸めを実行できます。

固定小数点値は、常に小数の正確な表現として保存されます。固定小数点値 10.50 が 10.49 と表されることはありません。

固定小数点定数は、次の例に示すように 10 進数として記述されます。小数点がある場合とない場合があります。

5
4.5
4100.01

固定小数点定数に小数点がある場合、スケールを指定済みの固定小数点値と見なされ、固定 10 進変数と同じ方法で格納およびアクセスされます。小数点がない固定小数点定数は整数定数となり、他の算術値を含む演算でその値の基数にもスケールにも問題なく使用できます。可能な限り、小数点がない整数定数を記述することをお奨めします。

固定小数点定数の精度は、その定数の桁数に相当します。