diff --git a/reactos/lib/msvcrt/stdio/vfwprint.c b/reactos/lib/msvcrt/stdio/vfwprint.c index bb2af012248..ff7099939e9 100644 --- a/reactos/lib/msvcrt/stdio/vfwprint.c +++ b/reactos/lib/msvcrt/stdio/vfwprint.c @@ -313,10 +313,11 @@ static int numberf(FILE * f, double __n, wchar_t exp_sign, int size, int precis } else { while ( intr > 0.0 ) { - intr/=10.0L; - p = modf(intr, &intr); + p = intr; + intr/=10.0L; + modf(intr, &intr); - p *=10; + p -= 10.0*intr; buf[i++] = (int)p + L'0'; size--; @@ -515,10 +516,11 @@ static int numberfl(FILE * f, long double __n, wchar_t exp_sign, int size, int } else { while ( intr > 0.0 ) { + p = intr; intr/=10.0L; - p = modfl(intr, &intr); + modfl(intr, &intr); - p *=10; + p -=10.0*intr; buf[i++] = (int)p + L'0'; size--;