我正在使用C#计算器,这个项目将结束我。我刚刚学习了类,我的格式化小数的范围基本上是使用格式代码ex:(“C”)作为货币。
这是项目要求的内容:
“乘法结果应该显示的小数位数不会超过第一个数字的结果而不是第二个数字。例55.5 * 89.68 = 4977.240”然后对加法,减法等有一些其他限制。< / p>
目前我的程序编码方式一切看起来很好接受乘法。我相信我的答案是我如何编码我的分区方法。
这是从我的操作员按钮开始的代码。在我到达Division之前,我没有格式化输出,因为这是唯一没有正确运行的测试数据。当我格式化分区时,它现在抛弃了乘法。我不确定如何使乘法和除法快乐。
private void btnAdd_Click(object sender, System.EventArgs e)
{
calc.Add(displayValue);
newValue = true;
decimalEntered = false;
displayValue = calc.CurrentValue;
txtDisplay.Text = displayValue.ToString();
}
private void btnSubtract_Click(object sender, System.EventArgs e)
{
calc.Subtract(displayValue);
newValue = true;
decimalEntered = false;
displayValue = calc.CurrentValue;
txtDisplay.Text = displayValue.ToString();
}
private void btnMultiply_Click(object sender, System.EventArgs e)
{
calc.Multiply(displayValue);
newValue = true;
decimalEntered = false;
displayValue = calc.CurrentValue;
txtDisplay.Text = displayValue.ToString();
}
private void btnDivide_Click(object sender, System.EventArgs e)
{
calc.Divide(displayValue);
newValue = true;
decimalEntered = false;
displayValue = calc.CurrentValue;
displayValue = Math.Round(displayValue, 8);
txtDisplay.Text = displayValue.ToString();
}
private void btnEquals_Click(object sender, System.EventArgs e)
{
try
{
if (newValue)
calc.Equals();
else
calc.Equals(displayValue);
displayValue = calc.CurrentValue;
displayValue = Math.Round(displayValue, 8);
txtDisplay.Text = displayValue.ToString();
newValue = true;
decimalEntered = false;
}
catch (DivideByZeroException)
{
displayValue = 0;
txtDisplay.Text = "Cannot divide by zero.";
newValue = true;
decimalEntered = false;
}
}
}
}
我还应该注意,我尝试将以下代码添加到我的分区语句中,而不是我上面的方式,这给了我错误,这就是为什么我回到上面的方式。
calc.Divide(displayValue);
newValue = true;
decimalEntered = false;
displayValue = calc.CurrentValue;
txtDisplay.Text = displayValue.ToString("f8");