ページの先頭行へ戻る
NetCOBOL V11.0 入門ガイド
FUJITSU Software

5.8.4 乗除算の混合時の小数部桁数

次のプログラムの[1]と[2]を比較します。

  77  X  PIC  S99  VALUE 10.
  77  Y  PIC  S9   VALUE 3.
  77  Z  PIC  S999V99.
     COMPUTE  Z = X / Y * 100.	[1]
     COMPUTE  Z = X * 100 / Y.	[2]

[1]の答はZ=333.00、[2]の答はZ=333.33となります。
この違いは、除算を行うタイミングによって発生します。
どちらも、除算の結果はXとZの小数部桁数の大きい方、すなわち小数第2位まで求められます。[1]では、X/Yが3.33と求められ、これが100倍されます。[2]ではX*100の中間結果である1000がYで割られ、333.33が求まります。
よって精度のよい結果を求めるには、[2]のように、乗算を先に除算を後に行ってください。