求问关于Format转换double的精度问题
比如语句:
double Double_Data;
CString tmpstr;
tmpstr.Format("%12f",Double_Data);
//若Double_Data=0.18131235000000时,转换后的 tmpstr=“ 0.181312”,丢失了精度,请问如何才能正确显示呢?谢谢!
好像MSDN上没有介绍啊
看一下 MFC 的 CString::FormatV(LPCTSTR lpszFormat, va_list argList) (VC98\MFC\SRC\STREX.cpp)
其中關於 Precision 的片斷:
int nPrecision = 0;
if (*lpsz == '.')
{
// skip past '.' separator (width.precision)
lpsz = _tcsinc(lpsz);
// get precision and skip it
if (*lpsz == '*')
{
nPrecision = va_arg(argList, int);
lpsz = _tcsinc(lpsz);
}
else
{
nPrecision = _ttoi(lpsz);
for (; *lpsz != '\0' && _istdigit(*lpsz); lpsz = _tcsinc(lpsz))
;
}
ASSERT(nPrecision >= 0);
}