Fortran95/2003 Explained 19.11 より。I/O時の Rounding 指定。
ROUND = xx
- RU Up 正無限大方向へ丸め
- RD Down 負無限大方向へ丸め
- RZ Zero 0原点方向へ丸め
- RN Nearest 最近接値に丸め、但しちょうど等距離にある場合はプロセッサ依存。
- RC Compatible 最近接値に丸め、但しちょうど等距離にある場合は0原点から遠い方へ。
- RP Processor_defined プロセッサ依存。
IEEE745 の丸めでは等距離にある場合の処理がよろしくないので、四捨五入的な RC があるのは便利かもしれないです。
ソースコード
PROGRAM rounding !19.11 IMPLICIT NONE REAL, PARAMETER :: pi = 4.0 * ATAN(1.0) !F2003 PRINT '(RU, F15.8)', pi PRINT '(RD, F15.8)', pi PRINT '(RZ, F15.8)', pi PRINT '(RN, F15.8)', pi PRINT '(RC, F15.8)', pi PRINT '(RP, F15.8)', pi ! PRINT '(RU, F15.8)', -pi PRINT '(RD, F15.8)', -pi PRINT '(RZ, F15.8)', -pi PRINT '(RN, F15.8)', -pi PRINT '(RC, F15.8)', -pi PRINT '(RP, F15.8)', -pi STOP END PROGRAM rounding