float iSize=((float)(iAddr2-iAddr1));
CString strSize;
if (iSize>=1024*1024)
{
strSize.Format(L"%0.3f",iSize/1024/1024);
strSize=strSize.TrimRight(L"0");//不知Format还有这个功能不?
strSize=strSize.TrimRight(L".");
strSize+=L" MB";
}
else if (iSize>10240)//不是1024
{
strSize.Format(L"%0.2f",iSize/1024);
strSize=strSize.TrimRight(L"0");//不知Format还有这个功能不?
strSize=strSize.TrimRight(L".");
strSize+=L" KB";
}
else
{
strSize.Format(L"%0.2f",iSize);
strSize=strSize.TrimRight(L"0");//不知Format还有这个功能不?
strSize=strSize.TrimRight(L".");
strSize+=L" B";
}
我的代码很猥琐,一个float f=3.90000f;Format的时候保留小数点三位,如果有多余的0则去掉,不知Format还有这个功能不?或者用sprintf也可实现?
CString strSize;
if (iSize>=1024*1024)
{
strSize.Format(L"%0.3f",iSize/1024/1024);
strSize=strSize.TrimRight(L"0");//不知Format还有这个功能不?
strSize=strSize.TrimRight(L".");
strSize+=L" MB";
}
else if (iSize>10240)//不是1024
{
strSize.Format(L"%0.2f",iSize/1024);
strSize=strSize.TrimRight(L"0");//不知Format还有这个功能不?
strSize=strSize.TrimRight(L".");
strSize+=L" KB";
}
else
{
strSize.Format(L"%0.2f",iSize);
strSize=strSize.TrimRight(L"0");//不知Format还有这个功能不?
strSize=strSize.TrimRight(L".");
strSize+=L" B";
}
我的代码很猥琐,一个float f=3.90000f;Format的时候保留小数点三位,如果有多余的0则去掉,不知Format还有这个功能不?或者用sprintf也可实现?
CString tmp;
tmp.Format(_T("%.3f"), fVal);
CString str;
str.Format(_T("%g"), _tcstod(tmp, NULL));
AfxMessageBox(str);
CString tmp;
tmp.Format(_T("%.3f"), fVal);
CString str;
str.Format(_T("%g"), _tcstod(tmp, NULL));
if(str.GetLength()>tem.GetLength())
{
return tmp;
}
else
return str;谁短取谁!
str.Format(_T("%g"), _tcstod(tmp, NULL));这一句画龙点睛.....