这段代码是我在编写计算器小程序中遇到的一个问题的解决办法,遇到的问题是输出结果时数据末尾有多余的0,例如输出了4.200000,需要把结果变成4.2。下面是解决办法:
利用while循环,用mid函数从字符串末尾往前依次提取字符,只要字符为0,就用left函数把它删除,然后length长度递减,直到末尾字符不为0,跳出循环。
void CcalculatorDlg::RemoveZeroAndPoint(CString str)
{
m_edit.GetWindowTextW(str);
int length = str.GetLength();
//去除多余的0
while (str.Mid(length - 1, 1) == "0")
{
str = str.Left(length - 1);
length--;
}
//去除多余的小数点
if (str.Mid(length - 1, 1) == ".")
{
str = str.Left(length - 1);
}
SetDlgItemText(IDC_EDIT1, str);
SetDlgItemText(IDC_EDIT2, str);
}