>> using print-functions i cannot get more than 9 digits after: "%.9f". <<
That's weird. This seems to work for me.
Code:
char buf[100];
double dbl = 9.423445631463345345;
sprintf(buf, "%.40f", dbl);
printf("%s\n", buf);
Down converting to ansi seems to defeat the purpose of using unicode, but if you must, you should consider using the WideCharToMultibyte() and MultibyteToWideChar() functions.
Here is another option that gives more than 9 digits.
Code:
BSTR bstr = NULL;
double dbl = 9.423445631463345345;
VarBstrFromR8(dbl, LOCALE_USER_DEFAULT, 0, &bstr);
printf("%ls\n", bstr);
SysFreeString(bstr);