Haberler:

Foruma Resim Yükleme ve Boyut Sınırlaması ( ! )  https://bit.ly/2GMFb8H

Ana Menü

Yanlış sonuç

Başlatan ziyaretci, 13 Aralık 2012, 00:24:12

ziyaretci

 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 = "";
            
        }

justice_for_all

#1
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.
Deneyip de başaramayanları değil, yalnızca denemeye bile kalkışmayanları yargıla.   Gökhan Arslanbay

Tagli

#2
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.
Gökçe Tağlıoğlu

ziyaretci

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.