octave-bug-tracker
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Octave-bug-tracker] [bug #61844] Incorrect number of digits printed by


From: A.R. Burgers
Subject: [Octave-bug-tracker] [bug #61844] Incorrect number of digits printed by printf for "%20.15g" and "%20.17g"
Date: Mon, 17 Jan 2022 16:08:10 -0500 (EST)
User-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36 Edg/97.0.1072.62

Follow-up Comment #2, bug #61844 (project octave):

same output for a plain C-program (ubuntu 21.10, gcc 11.2)


#include <stdio.h>
int main(int nargc, char * argv[])
{
 double val = 100/((double) 31);
 fprintf(stdout, "%20.02g\n",val);
 fprintf(stdout, "%20.03g\n",val);
 fprintf(stdout, "%20.04g\n",val);
 fprintf(stdout, "%20.05g\n",val);
 fprintf(stdout, "%20.06g\n",val);
 fprintf(stdout, "%20.07g\n",val);
 fprintf(stdout, "%20.08g\n",val);
 fprintf(stdout, "%20.09g\n",val);
 fprintf(stdout, "%20.10g\n",val);
 fprintf(stdout, "%20.11g\n",val);
 fprintf(stdout, "%20.12g\n",val);
 fprintf(stdout, "%20.13g\n",val);
 fprintf(stdout, "%20.14g\n",val);
 fprintf(stdout, "%20.15g\n",val);
 fprintf(stdout, "%20.16g\n",val);
 fprintf(stdout, "%20.17g\n",val);
 fprintf(stdout, "%20.18g\n",val);
 fprintf(stdout, "%20.19g\n",val);
 fprintf(stdout, "%20.20g\n",val);
 fprintf(stdout, "%20.21g\n",val);

 fprintf(stdout, "%17.00g\n",val);
 fprintf(stdout, "%17.01g\n",val);
 fprintf(stdout, "%17.02g\n",val);
 fprintf(stdout, "%17.03g\n",val);
 fprintf(stdout, "%17.04g\n",val);
 fprintf(stdout, "%17.05g\n",val);
 fprintf(stdout, "%17.06g\n",val);
 fprintf(stdout, "%17.07g\n",val);
 fprintf(stdout, "%17.08g\n",val);
 fprintf(stdout, "%17.09g\n",val);
 fprintf(stdout, "%17.10g\n",val);
 fprintf(stdout, "%17.11g\n",val);
 fprintf(stdout, "%17.12g\n",val);
 fprintf(stdout, "%17.13g\n",val);
 fprintf(stdout, "%17.14g\n",val);
 fprintf(stdout, "%17.15g\n",val);
 fprintf(stdout, "%17.16g\n",val);
 fprintf(stdout, "%17.17g\n",val);
 fprintf(stdout, "%17.18g\n",val);
 fprintf(stdout, "%17.19g\n",val);
 fprintf(stdout, "%17.20g\n",val);
 fprintf(stdout, "%17.21g\n",val);
}


which outputs


                 3.2
                3.23
               3.226
              3.2258
             3.22581
            3.225806
           3.2258065
          3.22580645
         3.225806452
        3.2258064516
       3.22580645161
      3.225806451613
     3.2258064516129
     3.2258064516129
   3.225806451612903
   3.225806451612903
 3.22580645161290303
3.225806451612903025
3.2258064516129030253
3.22580645161290302525
                3
                3
              3.2
             3.23
            3.226
           3.2258
          3.22581
         3.225806
        3.2258065
       3.22580645
      3.225806452
     3.2258064516
    3.22580645161
   3.225806451613
  3.2258064516129
  3.2258064516129
3.225806451612903
3.225806451612903
3.22580645161290303
3.225806451612903025
3.2258064516129030253
3.22580645161290302525


    _______________________________________________________

Reply to this item at:

  <https://savannah.gnu.org/bugs/?61844>

_______________________________________________
  Message sent via Savannah
  https://savannah.gnu.org/




reply via email to

[Prev in Thread] Current Thread [Next in Thread]