Şimdi Ara

c# textbox'daki floating point number çarpımı

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
1 Misafir - 1 Masaüstü
5 sn
3
Cevap
0
Favori
858
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • float var1 = float.Parse(textBox1.Text);
    float var2 = float.Parse(textBox2.Text);
    label6.Text = (var1 * var2).ToString();

    Böyle bi kodum var textbox1 e 4.55 yazıp, textbox2 ye de 20 yazdığımda sonucun 91 çıkması gerekirken 9100 yazıyor arkadaşlar bunu decimalle de denedim doublela da denedim

    label6.Text = (Decimal.Parse(textBox1.Text) * Decimal.Parse(textBox2.Text)).ToString();

    doğrudan bu şekilde de yaptım ama sonuç her türlü aynı. Virgülden sonraki basamak kadar 10 ile çarparak veriyor sonucu her seferinde. Bunu nasıl düzeltebilirim acaba ?

    Edit: Hallettim sorunu 4.55 değil de 4,55 yazmam gerekiyormuş :) Dün denemiştim aslında ama hata vermişti o ara başka bir yer hata vermiş demek ki :)



    < Bu mesaj bu kişi tarafından değiştirildi Lucinius -- 27 Temmuz 2013; 16:10:12 >



  • quote:

    Orijinalden alıntı: Joffrey

    float var1 = float.Parse(textBox1.Text);
    float var2 = float.Parse(textBox2.Text);
    label6.Text = (var1 * var2).ToString();

    Böyle bi kodum var textbox1 e 4.55 yazıp, textbox2 ye de 20 yazdığımda sonucun 91 çıkması gerekirken 9100 yazıyor arkadaşlar bunu decimalle de denedim doublela da denedim

    label6.Text = (Decimal.Parse(textBox1.Text) * Decimal.Parse(textBox2.Text)).ToString();

    doğrudan bu şekilde de yaptım ama sonuç her türlü aynı. Virgülden sonraki basamak kadar 10 ile çarparak veriyor sonucu her seferinde. Bunu nasıl düzeltebilirim acaba ?

    Edit: Hallettim sorunu 4.55 değil de 4,55 yazmam gerekiyormuş :) Dün denemiştim aslında ama hata vermişti o ara başka bir yer hata vermiş demek ki :)

    O ayıracın ne olduğunu işletim sisteminden ayarlıyorsun. Bende nokta o. Sende virgülmüş.

    Aslında istediğini kullanabilirsin:

    Thread.CurrentThread.CurrentCulture = new CultureInfo("tr-TR"); //bununla anadilini seçiyorsun


    Sonra istersen virgül istersen nokta kullanıyorsun:


                decimal d = 5.50m; 
    string virgul = d.ToString();
    string nokta = d.ToString(CultureInfo.InvariantCulture);
    Console.WriteLine(virgul);
    Console.WriteLine(nokta);



    Gerekenler:

    using System.Globalization; 
    using System.Threading;


    Benzer bir hataya LabView programında da rastlamıştım. Ölçümlerin ondalıkları yanlış oluyordu hatta 1000 kat fazla oluyordu



    < Bu mesaj bu kişi tarafından değiştirildi Tugrul_512bit -- 27 Temmuz 2013; 18:28:31 >




  • Tugrul_512bit kullanıcısına yanıt
    Hmm anladım çok teşekkür ederim işime yarayacak
  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.