OSDN Git Service

PR libfortran/21376
[pf3gnuchains/gcc-fork.git] / libgfortran / io / write.c
index 36fee92..793031a 100644 (file)
@@ -296,6 +296,7 @@ output_float (fnode *f, double value)
   int nblanks;
   int i;
   sign_t sign;
   int nblanks;
   int i;
   sign_t sign;
+  double abslog;
 
   ft = f->format;
   w = f->u.real.w;
 
   ft = f->format;
   w = f->u.real.w;
@@ -320,9 +321,11 @@ output_float (fnode *f, double value)
     edigits = 2;
   else
     {
     edigits = 2;
   else
     {
-      edigits = 1 + (int) log10 (fabs(log10 (value)));
-      if (edigits < 2)
+      abslog = fabs(log10 (value));
+      if (abslog < 100)
        edigits = 2;
        edigits = 2;
+      else
+        edigits = 1 + (int) log10 (abslog);
     }
 
   if (ft == FMT_F || ft == FMT_EN
     }
 
   if (ft == FMT_F || ft == FMT_EN