Re: GetNumberFormat() failure
<lakepeir@yahoo.com> wrote:
GetNumberFormat() is failing. It's not displaying a
value. lpValue
consists of "". The NumFormat values are
NumDigits=3
LeadingZero=1
Grouping=3
lpDecimalSep="."
lpThousandSep","
NegativeOrder=1
The Value is ="0.001"
Code:
GetNumberFormat( ::GetThreadLocale(), NULL, Value,
&numFormat, lpValue,
_countof(lpValue) );
GetLastError() returns 87 which means that a parameter is
incorrect. I
think all my parameters are correct. If I change the
Value to 1234.5,
it works just fine.
I tried follwing example:
----------
int _tmain(int argc, _TCHAR* argv[])
{
NUMBERFMT nf = { 0 };
nf.NumDigits = 3;
nf.LeadingZero = 1;
nf.Grouping = 3;
nf.lpDecimalSep = _T(".");
nf.lpThousandSep = _T(",");
nf.NegativeOrder = 1;
LPCTSTR pszValue = _T("0.001");
TCHAR szNum[128] = { 0 };
int nRes = ::GetNumberFormat(::GetThreadLocale(),
0, pszValue, &nf, szNum, 128);
return 0;
}
----------
GetNumberFormat works perfectrly for me. `szNum' cnstains
"0.001" string and return value is 6. So, you have error
somewhere else in your code.
Note: if you call GetLastError without checking
GetNumberFormat's return code, then you're wrong.
GetLastError is only meaningful if a function fails and
documentation states that caller should call GetLastError.
HTH
Alex