diff options
author | Janne Blomqvist <jb@gcc.gnu.org> | 2011-04-29 19:03:54 +0300 |
---|---|---|
committer | Janne Blomqvist <jb@gcc.gnu.org> | 2011-04-29 19:03:54 +0300 |
commit | ef6d0b67604409719db019043ef06676e28692ca (patch) | |
tree | 3f6beed37971b8317622cdb7ed034bf08f26b0fa | |
parent | d785f6a3942dce76df9d59fc90419bb15402ae36 (diff) | |
download | gcc-ef6d0b67604409719db019043ef06676e28692ca.zip gcc-ef6d0b67604409719db019043ef06676e28692ca.tar.gz gcc-ef6d0b67604409719db019043ef06676e28692ca.tar.bz2 |
PR 48488 Fix comments
From-SVN: r173170
-rw-r--r-- | libgfortran/io/write.c | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/libgfortran/io/write.c b/libgfortran/io/write.c index 40f4112..bfc2463 100644 --- a/libgfortran/io/write.c +++ b/libgfortran/io/write.c @@ -1457,14 +1457,17 @@ set_fnode_default (st_parameter_dt *dtp, fnode *f, int length) } } -/* Output a real number with default format. This is 1PG16.9E2 for - REAL(4), 1PG25.17E3 for REAL(8), 1PG30.21E4 for REAL(10) and - 1PG45.36E4 for REAL(16). The exception is that the Fortran standard - requires outputting an extra digit when the scale factor is 1 and - when the magnitude of the value is such that E editing is - used. However, gfortran compensates for this, and thus for list - formatted the same number of significant digits is generated both - when using F and E editing. */ +/* Output a real number with default format. To guarantee that a + binary -> decimal -> binary rountrip conversion recovers the + original value, IEEE 754-2008 requires 9, 17, 21 and 36 significant + digits for REAL kinds 4, 8, 10, and 16, respectively. Thus, we use + 1PG16.9E2 for REAL(4), 1PG25.17E3 for REAL(8), 1PG30.21E4 for + REAL(10) and 1PG45.36E4 for REAL(16). The exception is that the + Fortran standard requires outputting an extra digit when the scale + factor is 1 and when the magnitude of the value is such that E + editing is used. However, gfortran compensates for this, and thus + for list formatted the same number of significant digits is + generated both when using F and E editing. */ void write_real (st_parameter_dt *dtp, const char *source, int length) |