none
c# proje para hesaplamada hata veriyor RRS feed

  • Soru

  • öncelikle biraz karışık olabilir ama bunu halletmem lazım .

    1. double nakit = 200, para = 50;
    2. buton 1'e basıldığı zaman
    3. textBox1.Text = nakit.ToString("C");
    4. textBox2.Text = para.ToString("C"); yapıyorum
    5.  
    6. //buton 2'ye basıldığı zaman şu işlemi yapıyorum
    7. decimal d1 = Convert.ToDecimal(textBox1.Text.Replace(",", ".").Replace("TL", "").Trim());
    8. decimal d2 = Convert.ToDecimal(textBox2.Text.Replace(",", ".").Replace("TL", "").Trim());
    9. textBox3.Text = string.Format("{0} TL", d1 - d2);
    10.  
    11. // bu işlemi kendi bilgisayarımda çalıştırdığımda hiçbir sıkıntı yok işlemi istediğim gibi yapıyor. Fakat setup yapıp başka bilgisayara kurduğum zaman( para.ToString("C") ) bu işlemdeki C işaretini kurulu olan bilgisayarda TL simgesine dönüştürdüğü için decimal ile başlayan kısımda hata veriyor . Orda TL kısmını ayırıcak ama TL yazısı simge oluştuğu için hata veriyor. Bunu nasıl düzeltebilirim
    18 Mart 2018 Pazar 07:50

Tüm Yanıtlar

  • Lütfen yardım edebilirmisiniz çok acil lazım setup hazırlarken hatayı farkettim daha çözemedim
    18 Mart 2018 Pazar 09:02
  • Her bilgisayarda para birimi ve nokta virgül kullanımı aynı değildir. Sen bunu windows ayarlarından değiştirebilirsin. Onun için Globalization culture (kültür formatı) diye bir şey var onu kullanman gerekir. 

    https://msdn.microsoft.com/tr-tr/library/system.globalization.cultureinfo(v=vs.110).aspx

    Burada genel anlatımı var. Sen programın başında format'nı türkçeye çevirip kullanman gerekebilir.

    18 Mart 2018 Pazar 12:24
  • hocam textBox1.Text = nakit.ToString("C"); bu ifadedeki "C" işaretini hangi bilgisayara kursam TL işaretini oluşturuyor.

    benim bilgisayardım 0.00 TL yazarken ur--kurduğum bilgisayarlarda 0.00 yazıyo . TL simgesi yazmayıp sonuna TL yazssa hata çıkmıyo . ben bide "C" bunu kullanmak istiyorum textboxı para birimi yapıyo kısa yoldan



    18 Mart 2018 Pazar 13:03
  • textBox1.Text = nakit.ToString("C");  
    textBox2.Text = para.ToString("C"); 

    yerine,

    textBox1.Text = string.Format("{0} TL", nakit);  
    textBox2.Text = string.Format("{0} TL", para); 

    kullanın...


    Sorunuzun yanıtı bu ise "Yanıt olarak işaretle"yerek siz de forumun işleyişine katkıda bulununuz...

    18 Mart 2018 Pazar 16:14
  • Bu da farklı bir çözüm,

    decimal d1 = Convert.ToDecimal(textBox1.Text.Replace(",", ".").Replace(CultureInfo.CurrentCulture.NumberFormat.CurrencySymbol, "").Trim());


    Sorunuzun yanıtı bu ise "Yanıt olarak işaretle"yerek siz de forumun işleyişine katkıda bulununuz...

    18 Mart 2018 Pazar 16:22