none
Döviz Çeviri String Format Hesaplamalar RRS feed

  • Soru

  • Merhaba

    Arkadaşlar textbox da aldığım tl değerini Euro Ve Dolar'a çevirmek istiyorum ama textboxtaki değeri nasıl alıyorsa artık sonuç 0,00 olarak geliyor.

    lblTlCevirUsd.Text = string.Format("{0:#.00}", Convert.ToDecimal(Convert.ToDecimal(txttldeger.Text) / Ceviriusd()) / 100);

    Textbox'taki değeri alıyor ve Günlük dolar kuruna bölünüyor.Sonucu labele aktarmaya çalışıyor .

    Ayrıca Hata Durumu olursa try catch blokları programı kasıyor ,kasmaması için ne yapmalıyım .

    Teşekkür Ederim

    12 Şubat 2017 Pazar 23:49

Yanıtlar

  • Galiba textBox içinde TL veya ₺ gibi sayısal olmayan karakterler var. Bu durumda Culture kullanarak yapmalısın 

    private void button1_Click(object sender, EventArgs e)
    {
      decimal tlDeger;
      if (decimal.TryParse(textBox1.Text, NumberStyles.AllowTrailingWhite | NumberStyles.AllowCurrencySymbol, CultureInfo.CurrentCulture, out tlDeger))
      {
        decimal usd = 3.45M;  // Burası CeviriUsd den gelecek
        Text = string.Format(CultureInfo.CurrentCulture,"{0:c2}", tlDeger / usd / 100);
      }
    }


    • Yanıt Olarak İşaretleyen Yunus Bulduk 13 Şubat 2017 Pazartesi 14:46
    13 Şubat 2017 Pazartesi 12:02
  • label1.Text = (tlDeger * usd).ToString("c", tr);
    

    Yukardaki değişikliği dener misin?
    • Yanıt Olarak İşaretleyen Yunus Bulduk 13 Şubat 2017 Pazartesi 20:20
    13 Şubat 2017 Pazartesi 20:14

Tüm Yanıtlar

  • Şu şekilde dener misin?

    decimal tlDeger;
    if(decimal.TryParse(txttldeger.Text, out tlDeger))
    {
    decimal usd = Ceviriusd();
    sd.Text = string.Format("{0:#.00}", tlDeger / usd / 100);
    }

    13 Şubat 2017 Pazartesi 08:00
  • ,00 gibi bir değer alıyorum =(
    13 Şubat 2017 Pazartesi 10:56
  • Galiba textBox içinde TL veya ₺ gibi sayısal olmayan karakterler var. Bu durumda Culture kullanarak yapmalısın 

    private void button1_Click(object sender, EventArgs e)
    {
      decimal tlDeger;
      if (decimal.TryParse(textBox1.Text, NumberStyles.AllowTrailingWhite | NumberStyles.AllowCurrencySymbol, CultureInfo.CurrentCulture, out tlDeger))
      {
        decimal usd = 3.45M;  // Burası CeviriUsd den gelecek
        Text = string.Format(CultureInfo.CurrentCulture,"{0:c2}", tlDeger / usd / 100);
      }
    }


    • Yanıt Olarak İşaretleyen Yunus Bulduk 13 Şubat 2017 Pazartesi 14:46
    13 Şubat 2017 Pazartesi 12:02
  • decimal tlDeger = Convert.ToDecimal(txttldeger.Text);
    
    decimal usd = Ceviriusd();  // Burası CeviriUsd den gelecek
                    decimal euro = CeviriEuro();
    
                    lblTlCevirUsd.Text = (tlDeger / usd * 10000).ToString().Remove(6);
                    //}
                    lblTlCevirEuro.Text = (tlDeger / euro * 10000).ToString().Remove(6);
    
    
    Bu şekilde tam değerler geliyor ama Textboxa girdğim tl değeri yükselince anlamsız ifadeler çıkıyor =( Sizin dediğiniz gibi yapmaya çalıştım ama olmadı =( Teşekkürler böyle kullanalım bakalım
    13 Şubat 2017 Pazartesi 14:46
  • Nasıl anlamsız ifadeler? Olmayan ne?
    13 Şubat 2017 Pazartesi 15:25
  • Hocam yani 254141 gibi bir değer girdiğimde 68703, gibi bir değer geliyor..Devexpress gibi TextBoxu nasıl sınırlandırabiliriz acaba?


    13 Şubat 2017 Pazartesi 16:48
  • Hocam yani 254141 gibi bir değer girdiğimde 68703, gibi bir değer geliyor..Devexpress gibi TextBoxu nasıl sınırlandırabiliriz acaba?



    Sorun ne? Verdiğiniz değerler 1 dolar = 3,70 TL döviz kuruna göre doğru değerler. 254 bin TL eşittir 68 bin dolar. TextBox sınırlandırması derken ne demek istiyorsunuz?
    13 Şubat 2017 Pazartesi 17:16
  • Hocam yani 254141 gibi bir değer girdiğimde 68703, gibi bir değer geliyor..Devexpress gibi TextBoxu nasıl sınırlandırabiliriz acaba?



    Sorun ne? Verdiğiniz değerler 1 dolar = 3,70 TL döviz kuruna göre doğru değerler. 254 bin TL eşittir 68 bin dolar. TextBox sınırlandırması derken ne demek istiyorsunuz?
    Hocam ben istiyorum ki labele 68703 değilde 68,703 yazsın..TextBoxa girilen değer sadece decimal türünden olsun TextBoxa girdiğimiz değer sağında 2 sıfır ile başlasın.
    13 Şubat 2017 Pazartesi 18:10
  • Öncelikle şu onbinle çarpıp sonra ilk 6 rakamı alma cambazlığını bir yana bırakalım ve şunu deneyelim:

    using System.Globalization;

    ...

    CultureInfo tr = new CultureInfo("tr-TR");
    label1.Text = (tlDeger / usd).ToString("c", tr);



    13 Şubat 2017 Pazartesi 18:47
  • Öncelikle şu onbinle çarpıp sonra ilk 6 rakamı alma cambazlığını bir yana bırakalım ve şunu deneyelim:

    using System.Globalization;

    ...

    CultureInfo tr = new CultureInfo("tr-TR");
    label1.Text = (tlDeger / usd).ToString("c", tr);



     decimal tlDeger = Convert.ToDecimal(txttldeger.Text);
    
                    decimal usd = Ceviriusd();  // Burası CeviriUsd den gelecek
                    //decimal euro = CeviriEuro();
    
                    //lblTlCevirUsd.Text = (tlDeger / usd * 10000).ToString().Remove(6);
    
                    //lblTlCevirEuro.Text = (tlDeger / euro * 10000).ToString().Remove(6);
    
    
                    CultureInfo tr = new CultureInfo("tr-TR");
                    lblTlCevirUsd.Text = (tlDeger / usd).ToString("c", tr);

    Bu şekilde textbox'a 1 yazınca 0.00 tl yazıyor,10000 yazınca 0,27 olarak doğru sonucu buluyor hocam =( Çok kolay bir yanlışlık yapıyorum da anlayamadım ..

    13 Şubat 2017 Pazartesi 19:53
  •             decimal tlDeger = Convert.ToDecimal(textBox1.Text);
                decimal usd = 0.2645M;

                CultureInfo tr = new CultureInfo("tr-TR");
                label1.Text = (tlDeger / usd).ToString("c", tr);

    Benim sistemimde TextBox'a 1 yazınca, Label 3,78 TL gösteriyor.  10000 yazınca, 37.807,18 TL gösteriyor.  Ceviriusd() metodunu devre dışı bırakıp yukardaki kalın kısmı koduna doğrudan yazarsan ne oluyor?

    13 Şubat 2017 Pazartesi 19:59
  •             decimal tlDeger = Convert.ToDecimal(textBox1.Text);
                decimal usd = 0.2645M;

                CultureInfo tr = new CultureInfo("tr-TR");
                label1.Text = (tlDeger / usd).ToString("c", tr);

    Benim sistemimde TextBox'a 1 yazınca, Label 3,78 TL gösteriyor.  10000 yazınca, 37.807,18 TL gösteriyor.  Ceviriusd() metodunu devre dışı bırakıp yukardaki kalın kısmı koduna doğrudan yazarsan ne oluyor?

    3,78 tl yazıyor hocam

    Cevirusd metodu ;

         public decimal Ceviriusd()
            {
    
                decimal USD = 0.0m;
                try
                {
                    string anyDays = string.Format("http://www.tcmb.gov.tr/kurlar/today.xml");
    
                    var xmlDoc = new XmlDocument();
                    xmlDoc.Load(anyDays);
    
                    USD = Convert.ToDecimal(xmlDoc.SelectSingleNode("Tarih_Date/Currency[@Kod='USD']/BanknoteSelling").InnerXml);
    
    
    
    
                }
                catch (Exception)
                {
    
                    string a = "";
                }
    
    
                return USD;
    
    
    
    
            }

    13 Şubat 2017 Pazartesi 20:03
  • label1.Text = (tlDeger * usd).ToString("c", tr);
    

    Yukardaki değişikliği dener misin?
    • Yanıt Olarak İşaretleyen Yunus Bulduk 13 Şubat 2017 Pazartesi 20:20
    13 Şubat 2017 Pazartesi 20:14
  • label1.Text = (tlDeger * usd).ToString("c", tr);
    

    Yukardaki değişikliği dener misin?

    Biraz önce buna benzer birşey yapmıştık sanki ama olmamıştı şimdi sıkıntı yok hocam düzgün çalıştı =)

    13 Şubat 2017 Pazartesi 20:19
  • label1.Text = (tlDeger * usd).ToString("c", tr);

    Yukardaki değişikliği dener misin?

    Biraz önce buna benzer birşey yapmıştık sanki ama olmamıştı şimdi sıkıntı yok hocam düzgün çalıştı =)


    Yani sonuçta dövize yatırım doğru bir karar mı? :)
    13 Şubat 2017 Pazartesi 20:24
  • label1.Text = (tlDeger * usd).ToString("c", tr);

    Yukardaki değişikliği dener misin?

    Biraz önce buna benzer birşey yapmıştık sanki ama olmamıştı şimdi sıkıntı yok hocam düzgün çalıştı =)


    Yani sonuçta dövize yatırım doğru bir karar mı? :)
    Valla hocam geçen sene bu vakitlerde çok doğru bir karardı ama şimdi ne olur bilmiyorum :D
    13 Şubat 2017 Pazartesi 20:26
  • Haklısın ben de geçen yıla gitmek için zaman makinesi üzerinde çalışıyorum. :)
    13 Şubat 2017 Pazartesi 20:29
  • Resmini koyduğun döviz çeviri kutusunu Visual Studio'nun hangi versiyonunda yaptın? Güzel olmuş.
    13 Şubat 2017 Pazartesi 20:30
  • VS 2015 Update 3 hocam , programda görsellik ne kadar önemli hocam sizce yani zor çalışan kasan bir program mı daha avantajlı yoksa görsellik olmayan ama seri çalışan program mı .Bir de her ince ayrıntı görsellik programı kasar mı devexpress componentleri dahil
    13 Şubat 2017 Pazartesi 20:34
  • DevExpress kullanmıyorum o konuyu bilemem ama görsellik çok önemli.  Windows Forms ya da WPF sistemi zorlamaz.  Ancak oyun programları gibi uygulamalarda bu konuya odaklanmak gerek.  Yoksa bu konu ile hiç meşgul olma.  Güzel tasarlanmış bir program önemli fakat döviz kurlarını doğru çevirmesi de bir o kadar önemli!
    13 Şubat 2017 Pazartesi 20:38