Soran
c# proje para hesaplamada hata veriyor

Soru
-
öncelikle biraz karışık olabilir ama bunu halletmem lazım .
- double nakit = 200, para = 50;
- buton 1'e basıldığı zaman
- textBox1.Text = nakit.ToString("C");
- textBox2.Text = para.ToString("C"); yapıyorum
- //buton 2'ye basıldığı zaman şu işlemi yapıyorum
- decimal d1 = Convert.ToDecimal(textBox1.Text.Replace(",", ".").Replace("TL", "").Trim());
- decimal d2 = Convert.ToDecimal(textBox2.Text.Replace(",", ".").Replace("TL", "").Trim());
- textBox3.Text = string.Format("{0} TL", d1 - d2);
- // 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
Tüm Yanıtlar
-
-
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.
-
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
- Düzenleyen batuhan2335 18 Mart 2018 Pazar 13:05
-
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...
-
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...