make fcvt decimal point location for zero make more sense
authorRich Felker <dalias@aerifal.cx>
Wed, 7 Aug 2013 15:19:11 +0000 (11:19 -0400)
committerRich Felker <dalias@aerifal.cx>
Wed, 7 Aug 2013 15:19:11 +0000 (11:19 -0400)
the (obsolete) standard allows either 0 or 1 for the decimal point
location in this case, but since the number of zero digits returned in
the output string (in this implementation) is one more than the number
of digits the caller requested, it makes sense for the decimal point
to be logically "after" the first digit. in a sense, this change goes
with the previous commit which fixed the value of the decimal point
location for non-zero inputs.

src/stdlib/fcvt.c

index 003aa5aaa981e0928628b4ad5282f4925ef619e5..f90928fe160de88fa783d10bd0f10b44ac833950 100644 (file)
@@ -16,7 +16,7 @@ char *fcvt(double x, int n, int *dp, int *sign)
 
        if (n<=lz) {
                *sign = i;
-               *dp = 0;
+               *dp = 1;
                if (n>14U) n = 14;
                return "000000000000000"+14-n;
        }