MFC 计算器小数点的处理问题?

来源:百度知道 编辑:UC知道 时间:2024/07/07 20:18:18
我在编写MFC计算器时对小数点这样处理:

void CCalculatorDlg::OnPoint()
{
// TODO: 在此添加控件通知处理程序代码
point=true;
}

对按键1添加事件处理:
void CCalculatorDlg::OnButton1()
{
// TODO: 在此添加控件通知处理程序代码
if(!point)
{
if(append==1) iresult=0;
iresult=iresult*10+1;
append=0;
}
else
{
int i=1;
if(append=1) dresult=0.0;
dresult=dresult/10+1/(10*i);
append=0;
i++;
}
m_result=iresult+dresult;
UpdateData(false);
}

说明: double iresult; // 存储第一个整数
double itempvalue; // 存储第二个整数
double dresult; // 存储第一个小数
double dtempvalue; // 存储第二个小数
int i; // 小数点记数
int append; // 判断之后是否跟数字
static bool point=false;//判断是否有小数点

m_result是输出框的控件变量

具体实现时,整数部分能够输入,但是按过小数点后输出框再按任何数字的情况下都没有变化,请问这个算法上有什么问题?该如何修改?
else 中if(append=1) dresult=0.0; 改为if(append==1) dresult=0.0;

你用的语言是不是C#我的这个是C#语言的窗体的你可以参考一下,或许对你有一点的帮助:
string s = ".";

if (textBox1.Text.Contains(s))
{
MessageBox.Show("已经有了一个小数点了!", " 提示!", MessageBoxButtons.OK, MessageBoxIcon.Warning);
}
else
{
if (qingling)
{
textBox1.Text = "";
}
qingling = false;
if (textBox1.Text == "")
{
textBox1.Text = "0.";
}
else if (textBox1.Text == "0")
{
textBox1.Text += ".";
}
else
{
textBox1.Text += ".";
}
}