update for HEAD-2003050101
[reactos.git] / lib / msvcrt / stdio / vfprintf.c
index 971c5f1..b9aa7f0 100644 (file)
@@ -307,10 +307,11 @@ static int numberf(FILE * f, double __n, char exp_sign,  int size, int precision
                }
                else {
                        while ( intr > 0.0 ) {
+                               p = intr;
                                intr/=10.0L;
-                               p = modf(intr, &intr);
+                               modf(intr, &intr);
 
-                               p *=10;
+                               p -= 10.0*intr;
 
                                buf[i++] = (int)p + '0';
                                size--;
@@ -510,10 +511,11 @@ static int numberfl(FILE * f, long double __n, char exp_sign,  int size, int pre
                }
                else {
                        while ( intr > 0.0 ) {
+                               p=intr;
                                intr/=10.0L;
-                               p = modfl(intr, &intr);
+                               modfl(intr, &intr);
 
-                               p *=10;
+                               p -= 10.0L*intr;
 
                                buf[i++] = (int)p + '0';
                                size--;