IEEE と 16 進数の浮動小数点データ間の表現の違いによる一般的な問題を回避するには、FLOAT(S390) コンパイラー・オプションを使用します。
Windows ベースのワークステーションは、IEEE 形式を使用して浮動小数点データを表現します。 メインフレームは、zSeries の 16 進形式を使用します。次の表に、USAGE COMP-1 データと USAGE COMP-2 データに対する、正規化浮動小数点 IEEE と正規化 16 進数の違いをまとめます。
| 仕様 | COMP-1 データの IEEE | COMP-1 データの 16 進数 | COMP-2 データの IEEE | COMP-2 データの 16 進数 |
|---|---|---|---|---|
| 範囲 | 1.17E-38* から 3.37E+38* | 5.4E-79* から 7.2E+75* | 2.23E-308* から 1.67E+308* | 5.4E-79* から 7.2E+75* |
| 指数表現 | 8 ビット | 7 ビット | 11 ビット | 7 ビット |
| 小数部表現 | 23 ビット | 24 ビット | 53 ビット | 56 ビット |
| 正確性のある桁数 | 6 桁 | 6 桁 | 15 桁 | 16 桁 |
| * 値は正数でも負数でも構いません。 | ||||
大半のプログラムでは、これらの違いによる問題は発生しません。ただし、データの 16 進数表現に依存するプログラムの場合は、移植時に注意が必要です。
パフォーマンスについての考慮事項: 一般に、zSeries の浮動小数点表記を使用すると、ソフトウェアが zSeries のハードウェア命令のセマンティクスをシミュレートする必要があるため、プログラムの実行速度が遅くなります。 これは、特に FLOAT(S390) コンパイラー・オプションが有効で、なおかつプログラムに多数の浮動小数点計算がある場合の考慮事項です。
関連参照
FLOAT