私は C# で計算機に取り組んでいますが、このプロジェクトは私を終わらせるつもりです。クラスについて学んだばかりで、小数の書式設定の程度は、基本的に書式設定コード ex: ("C") を通貨に使用することです。
プロジェクトが求めるものは次のとおりです。
「乗算の結果は、2 番目の数値よりも最初の数値の結果よりも多くの小数点以下の桁数を表示する必要はありません。例 55.5*89.68 = 4977.240」そして、加算、減算などに関する他のいくつかの制限。
現在、私のプログラムがコーディングされている方法では、すべてが乗算を受け入れているように見えます。私の答えを投げているのは、私の除算方法をどのようにコーディングしたかだと思います。
これが私のオペレーターボタンから始まるコードです。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");