나는 매우 귀찮은 문제가있어서 어디서나 찾을 수 있지만 그 중 아무 것도 나에게 의미가 없습니다. 나는 최근에 C#을 시작 했으므로 어리석은 실수라면 미안하다.계산기의 입력 문자열 형식이 올바르지 않습니다.
필자는 계산기를 만들었고 성공적으로 만들었지 만 사용자가 클릭 할 때 작업을 표시하려고합니다. 예를 들어, 사용자가 물론 6 버튼을 클릭하면 텍스트 필드 에 6이 표시되고 더하기 (+) 버튼을 누르면이 표시되고 [6+]가 표시되고 예를 들어 5를 누르면 다음과 같이 표시됩니다 텍스트 필드에서 [6 + 5].
이제 내 오류가 있습니다. 위의 모든 작업을 수행 할 수 있지만 같음 (=) 단추를 클릭하면 오류가 발생합니다. 그것은 말합니다
"입력 문자열이 올바른 형식이 아닙니다."
그것은 오류가이 코드 라인에 말한다 :
decimal total = Convert.ToDecimal(LCD.Tag) +
Convert.ToDecimal(LCD.Text);
Heres는 내 코드 :
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
public partial class Window : Form
{
bool pluss = false;
bool minuss = false;
bool multiplyy = false;
bool dividee = false;
public Window()
{
InitializeComponent();
}
private void clear_Click(object sender, EventArgs e)
{
LCD.Text = "";
}
private void dec_Click(object sender, EventArgs e)
{
if (LCD.Text.Contains("."))
{
return;
}
else {
LCD.Text = LCD.Text + ".";
}
}
private void zero_Click(object sender, EventArgs e)
{
LCD.Text = LCD.Text + "0";
}
private void one_Click(object sender, EventArgs e)
{
LCD.Text = LCD.Text + "1";
}
private void two_Click(object sender, EventArgs e)
{
LCD.Text = LCD.Text + "2";
}
private void three_Click(object sender, EventArgs e)
{
LCD.Text = LCD.Text + "3";
}
private void four_Click(object sender, EventArgs e)
{
LCD.Text = LCD.Text + "4";
}
private void five_Click(object sender, EventArgs e)
{
LCD.Text = LCD.Text + "5";
}
private void six_Click(object sender, EventArgs e)
{
LCD.Text = LCD.Text + "6";
}
private void seven_Click(object sender, EventArgs e)
{
LCD.Text = LCD.Text + "7";
}
private void eight_Click(object sender, EventArgs e)
{
LCD.Text = LCD.Text + "8";
}
private void nine_Click(object sender, EventArgs e)
{
LCD.Text = LCD.Text + "9";
}
private void plus_Click(object sender, EventArgs e)
{
if (LCD.Text == "")
{
return;
}else{
pluss = true;
LCD.Tag = LCD.Text;
LCD.Text = LCD.Text + " + ";
}
}
private void equal_Click(object sender, EventArgs e)
{
decimal total = Convert.ToDecimal(LCD.Tag) + Convert.ToDecimal(LCD.Text);
LCD.Text = total.ToString();
}
}
}
누군가의 반응을 기다리고 그리고 난 내가 얻는 경우에 매우 greatful 수 있습니다 수정. 감사합니다. .
그것은 실패 할 것이다! – c0deNinja
@Ed S. Convert.ToDecimal ("4 + 2")는 실패합니다 – c0deNinja
@ c0deNinja : 아니요. 아마 당신은 그것을 테스트해야합니다. 이제 유효한 숫자가없는 단일 "+"또는 여러 개의 숫자 (즉, "4 + 2")가 실패합니다. –