Merhaba,
Aşağıdaki kod da 99999*99999 u çarpıyorum yanlış sonuç alıyorum neden ? Yalnız bu 5 haneli de 4 tane 9999 ile 9999 çarparsam sonuç doğru bu 5 hanede neden sapıtıyor?
private void button1_Click(object sender, EventArgs e)
{
if (sayi_1.Text == "") { uyari.Text = "Lütfen 1. sayıyı giriniz."; return; }
if (sayi_2.Text == "") { uyari.Text = "Lütfen 2. sayıyı giriniz."; return; }
int ss_1 = Convert.ToInt32(sayi_1.Text.Trim());
int ss_2 = Convert.ToInt32(sayi_2.Text.Trim());
int sonuc;
sonuc = ss_1 * ss_2;
cevap.Text = Convert.ToString(sonuc);
uyari.Text = "";
}
buyuk ihtimal int sinirini geciyosun.unsigned int gibi bisey varmi tanimlamalarda.
Not:yaptigin islem iki bes basamakli 32 bit sinirini geciyor.int tanimlamalarini int64 olarak degistirmelisin.
justice_for_all'un dediği gibi, taşma var. 99999'un karesi 10 milyar'a yakın bir sayı yapıyor. 32 bitlik bir int değişkeni ise işaret de göz önünde bulundurulduğunda yaklaşık 2.1 milyar civarında bir değer alabilir. 9999'un karesi 100 milyon civarında olduğundan sorun çıkarmıyor.
Sayılar için long türünden değişken kullanmayı dene.
Alıntı yapılan: justice_for_all - 13 Aralık 2012, 00:31:15
buyuk ihtimal int sinirini geciyosun.unsigned int gibi bisey varmi tanimlamalarda.
Not:yaptigin islem iki bes basamakli 32 bit sinirini geciyor.int tanimlamalarini int64 olarak degistirmelisin.
Teşekkür ederim. long olarak kullandım.