Handle the %f case in wsprintf.

diff --git a/dlls/msvcrt/wcs.c b/dlls/msvcrt/wcs.c
index ec8929d..e69b45a 100644
--- a/dlls/msvcrt/wcs.c
+++ b/dlls/msvcrt/wcs.c
@@ -201,7 +201,10 @@
           {
             *fmta++ = *iter;
             *fmta = '\0';
-            sprintf(bufaiter, fmtbufa, va_arg(valist, void *));
+            if (*iter == (WCHAR)L'f')
+              sprintf(bufaiter, fmtbufa, va_arg(valist, double));
+            else
+              sprintf(bufaiter, fmtbufa, va_arg(valist, void *));
           }
           while (*bufaiter)
           {
diff --git a/dlls/ntdll/wcstring.c b/dlls/ntdll/wcstring.c
index 3effaba..50d2dbf 100644
--- a/dlls/ntdll/wcstring.c
+++ b/dlls/ntdll/wcstring.c
@@ -444,7 +444,10 @@
           {
             *fmta++ = *iter;
             *fmta = '\0';
-            sprintf(bufaiter, fmtbufa, va_arg(valist, void *));
+            if (*iter == (WCHAR)L'f')
+              sprintf(bufaiter, fmtbufa, va_arg(valist, double));
+            else
+              sprintf(bufaiter, fmtbufa, va_arg(valist, void *));
           }
           while (*bufaiter)
           {