c# kalkulator
Witam!
Chciałbym napisać prosty kalkulator w c#
kod mainform.cs wyglada tak:
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Windows.Forms;
namespace kalkulator
{
///
/// Description of MainForm.
///
public partial class MainForm : Form
{
double a=0;
double wynik=0;
public MainForm()
{
//
// The InitializeComponent() call is required for Windows Forms designer support.
//
InitializeComponent();
//
// TODO: Add constructor code after the InitializeComponent() call.
//
}
void Btn1Click(object sender, EventArgs e)
{
textBox1.Text=textBox1.Text+btn1.Text;
}
void Btn2Click(object sender, EventArgs e)
{
textBox1.Text=textBox1.Text+btn2.Text;
}
void BtnplusClick(object sender, EventArgs e)
{
a=double.Parse(textBox1.Text);
wynik=wynik+(a);
textBox1.Text="";
}
void BtnrownyClick(object sender, EventArgs e)
{
textBox1.Text=System.Convert.ToString(wynik);
}
}
}
moze wiecie dlaczego nie liczy dobrze?
Odpowiedzi: 2
Panowie mam mały problem z moim kalkulatorem. Otóż kiedy mnożę jakąś liczbę z przecinkiem z jakąś inną to wyskakuje mi błąd. Odnosi się on do tego fragmentu związanego z = :
private void button17_Click(object sender, EventArgs e)
{
equal = true;
if (plus)
{
decimal dec = Convert.ToDecimal(textBox1.Tag) + Convert.ToDecimal(textBox1.Text);
textBox1.Text = dec.ToString();
}
if (multiply)
{
decimal dec = Convert.ToDecimal(textBox1.Tag) * Convert.ToDecimal(textBox1.Text);
textBox1.Text = dec.ToString();
}
if (minus)
{
decimal dec = Convert.ToDecimal(textBox1.Tag) - Convert.ToDecimal(textBox1.Text);
textBox1.Text = dec.ToString();
}
if (divide)
{
decimal dec = Convert.ToDecimal(textBox1.Tag) / Convert.ToDecimal(textBox1.Text);
textBox1.Text = dec.ToString();
}
}
Co mogę mieć tutaj źle ?
Tak na oko to nie wiem gdzie jest błąd. Jakbyś mógł to dodaj cały projekt to poszukam błędu.
[quote]
void BtnplusClick(object sender, EventArgs e)
{
a=double.Parse(textBox1.Text);
wynik=wynik+(a);
textBox1.Text="";
}
[/quote]
Spróbuj tak:
[quote]
try
{
a=double.Parse(textBox1.Text);
wynik+=a;
}
catch(Exception)
{
MessageBox.Show("Nie poprawna wartość");
}
[/quote]
Strona 1 / 1
[quote=sledzikmaster]Otóż kiedy mnożę jakąś liczbę z przecinkiem z jakąś inną to wyskakuje mi błąd.[/quote] W notacji amerykańskiej musisz wprowadzać liczbę (kropka, nie przecinek). BTW, dlaczego dec, a nie double?