none
TextBox TL para Birimi Yazmak RRS feed

  • Soru

  • Merhabalar,

    textbox a kullanıcı para girişi yaptığında düz sayılar olarak değil TL formatında gösterilmesini nasıl sağlarız

    internette bir kaç örnek var ama kuruş kısmını 00 koyup 12,56 tl yi 1.256,00 olarak gösteriyor

    Örnek olarak bu sıkıntıyı yaşadığım kod;

    if (TextBox1.Text != "")
                    {
                    TextBox1.Text = Convert.ToDouble(TextBox1.Text.Replace("TL", "")).ToString("c");
                        }
            else
                    {
                    TextBox1.Text = 0.ToString("c");
                        }


    • Düzenleyen RecepKurum 21 Ekim 2015 Çarşamba 20:45
    21 Ekim 2015 Çarşamba 20:39

Yanıtlar

  • burhanx47: arkadaşım napıyorsun sen ya? 100 e bölüyorsun, binler ayracını replace ediyorsun, substringle kuruş hanesini alıyorsun, nedir bunlar neyin kafası bu? Adamın kafasını yalan yanlış şeylerle allak bullak ettiniz.

    Recep kardeşim:

    Web.Configde system.web /  pages / culture ve uiculture ayarları var. Bunun default valuesi auto dur. Bu da işletim sisteminin diline göre binler ve ondalık ayraçlarının değişiklik göstereceği anlamına gelir.

    Regional settingsi İngilizce ayarlı bir bilgisayarda virgül koyarsan bunu binler ayracı (en-US), Türkçe bir işletim sisteminde ise kuruş ayracı (tr-TR) kabul eder. bunun için herhangi bir kod falan yazmana gerek yok. Bırak kullanıcı istediği gibi girsin değeri. 

    Neden güldüm; senin her text changed eventi sunucuya bir post requesti yollar bunun için güldüm.


    www.mvcblog.org
    e-mail: onay[nokta]yalciner[at]hotmail[nokta]com


    22 Ekim 2015 Perşembe 10:27
    Moderatör
  • Buraya bakar mısın? Benzer bir sorun vardı. O arkadaş Euro istemişti. CultureIfo  daki FR olan yerleri TR ye çevirirsen sorun kalmaz gibi. Olmazsa tekrar bakarız. 
    • Yanıt Olarak İşaretleyen RecepKurum 22 Ekim 2015 Perşembe 08:55
    22 Ekim 2015 Perşembe 07:03

Tüm Yanıtlar

  • http://www.codeproject.com/Articles/248989/A-Currency-Masked-TextBox-from-TextBox-Class

    http://www.codeproject.com/Tips/721779/Currency-TextBox-NET

    buyur kardeşim. iki güzel örnek


    Bilgisayar,Hayallerini, Mantığını Kullanarak Gerçekleştirir...

    22 Ekim 2015 Perşembe 06:43
  • hocam bu örnektede durum aynı buda olmuyor 12,56 krş giriş yapıyorum bana 1.256.00 tl gibi bir rakam çıkartıyor

    yada 11.256,48 girince 1.126.480.00 gibi bir şey çıkartıyor 

    22 Ekim 2015 Perşembe 06:59
  • Buraya bakar mısın? Benzer bir sorun vardı. O arkadaş Euro istemişti. CultureIfo  daki FR olan yerleri TR ye çevirirsen sorun kalmaz gibi. Olmazsa tekrar bakarız. 
    • Yanıt Olarak İşaretleyen RecepKurum 22 Ekim 2015 Perşembe 08:55
    22 Ekim 2015 Perşembe 07:03
  • hocam bu örnektede durum aynı buda olmuyor 12,56 krş giriş yapıyorum bana 1.256.00 tl gibi bir rakam çıkartıyor

    yada 11.256,48 girince 1.126.480.00 gibi bir şey çıkartıyor 

    Onun Sebebi nokta noktayı virgüle replace edeceksin veya virgülü noktaya

    Bilgisayar,Hayallerini, Mantığını Kullanarak Gerçekleştirir...


    • Düzenleyen burhanx47 22 Ekim 2015 Perşembe 07:05
    22 Ekim 2015 Perşembe 07:04
  • hocam bu örnektede durum aynı buda olmuyor 12,56 krş giriş yapıyorum bana 1.256.00 tl gibi bir rakam çıkartıyor

    yada 11.256,48 girince 1.126.480.00 gibi bir şey çıkartıyor 

    Onun Sebebi nokta noktayı virgüle replace edeceksin veya virgülü noktaya

    Bilgisayar,Hayallerini, Mantığını Kullanarak Gerçekleştirir...


    Replace etmek kendi bilgisayarında çalışabilir ama başka bir bilgisayara yüklendiğinde çalışacağının garanti etmez. Yüklenen bilgisayarda Ondalık, Binlik ayracı farklı olabilir. Aynı Culture ayarlarını kullanıyor bile olsa Windows ayarlarından değiştirilmiş olabilir. O yüzden en sağlamı  CultureInfo bilgisi vererek yapmak.
    22 Ekim 2015 Perşembe 07:23
  • Dogruluk  payı  var.

    Bilgisayar,Hayallerini, Mantığını Kullanarak Gerçekleştirir...

    22 Ekim 2015 Perşembe 07:32
  • hocam textbox ın textChanged eventine şu kodu yazdım ;

    decimal GunlukCiro;
                decimal.TryParse(TextBox1.Text, NumberStyles.Currency, CultureInfo.CurrentUICulture.NumberFormat, out GunlukCiro);
                TextBox1.Text = string.Format(CultureInfo.CreateSpecificCulture("tr-TR"), "{0:C}", GunlukCiro);

    sonra 12,56 krş görebilmek için 1256 yazdım ve sonuç aşağıdaki gibi geldi bana.

    1.256,00 ₺

    @burhanx47 hocamında örneklerinde aynı sıkıntı oluyor

    22 Ekim 2015 Perşembe 07:34
  • hocam textbox ın textChanged eventine şu kodu yazdım ;

    decimal GunlukCiro;
                decimal.TryParse(TextBox1.Text, NumberStyles.Currency, CultureInfo.CurrentUICulture.NumberFormat, out GunlukCiro);
                TextBox1.Text = string.Format(CultureInfo.CreateSpecificCulture("tr-TR"), "{0:C}", GunlukCiro);

    sonra 12,56 krş görebilmek için 1256 yazdım ve sonuç aşağıdaki gibi geldi bana.

    1.256,00 ₺

    @burhanx47 hocamında örneklerinde aynı sıkıntı oluyor

    Doğru vermiş


    Bilgisayar,Hayallerini, Mantığını Kullanarak Gerçekleştirir...

    22 Ekim 2015 Perşembe 07:40
  • WebForms ve text_changed :)

    www.mvcblog.org
    e-mail: onay[nokta]yalciner[at]hotmail[nokta]com

    22 Ekim 2015 Perşembe 07:44
    Moderatör
  • hocam doğru değil ki 12 tl 56 krş bilgisini almak istedim 1256 yazdım ama bin 256 tl 00 krş verdi

    Önay hocam gülümsetecek durum tam olarak nedir asp.net te yeniyim . Burada diğer iki arkadaş yardımcı olmaya çalışıyorlar sizin tepkiniz biraz farklı olmuş açıkçası. Birde -Düşündüğünüzde- Konuya hakim olsam burada yardım isteğinde bulunmazdım

    • Düzenleyen RecepKurum 22 Ekim 2015 Perşembe 07:56
    22 Ekim 2015 Perşembe 07:47
  • Bence o işi TextLeave olayında yap
    22 Ekim 2015 Perşembe 07:55
  • Bence o işi TextLeave olayında yap

    hocam event kısmında textleave bulunmuyor 

    hem standart textbox için baktım hemde devexpress componenti için

    22 Ekim 2015 Perşembe 07:57
  • hocam doğru değil ki 12 tl 56 krş bilgisini almak istedim 1256 yazdım ama bin 256 tl 00 krş verdi

    Önay hocam gülümsetecek durum tam olarak nedir asp.net te yeniyim . Burada diğer iki arkadaş yardımcı olmaya çalışıyorlar sizin tepkiniz biraz farklı olmuş açıkçası. Birde -Düşündüğünüzde- Konuya hakim olsam burada yardım isteğinde bulunmazdım

    Ya arkadaşım 1256 ne demek 1.256,00 demek ne yapmaya çalışıyorsun anlamadım.Neyle ne yapmaya çalışıyorsun

    12,56 almak istiyorsan 12,56 yazacaksın 1256 değil


    Bilgisayar,Hayallerini, Mantığını Kullanarak Gerçekleştirir...


    • Düzenleyen burhanx47 22 Ekim 2015 Perşembe 08:01
    22 Ekim 2015 Perşembe 08:01
  • hocam doğru değil ki 12 tl 56 krş bilgisini almak istedim 1256 yazdım ama bin 256 tl 00 krş verdi

    Önay hocam gülümsetecek durum tam olarak nedir asp.net te yeniyim . Burada diğer iki arkadaş yardımcı olmaya çalışıyorlar sizin tepkiniz biraz farklı olmuş açıkçası. Birde -Düşündüğünüzde- Konuya hakim olsam burada yardım isteğinde bulunmazdım

    Ya arkadaşım 1256 ne demek 1.256,00 demek ne yapmaya çalışıyorsun anlamadım.Neyle ne yapmaya çalışıyorsun

    Bilgisayar,Hayallerini, Mantığını Kullanarak Gerçekleştirir...

    hocam şöyle bir seneryo var,

    bir aracın yakıt masrafını textbox a gireceğim ve bana otomatik para birimi şeklinde gösterecek ve db ye kayıt edeceğim.

    misal yakıt tutarı 56,42 krş  bunu ben bunu textbox a 5642 yazdığımda son 2 hane krş kısmını temsil etmeli hocam her zaman için

    misal  textbox a  125623 yazdığımda   bunu otomatik olarak   bin ikiyüzellialtı tl 23krş    olarak düzenlemesini istiyorum. konu bu hocam

    22 Ekim 2015 Perşembe 08:04
  • Leave olacak yanlış yazmışım. 

            private void textBox6_Leave(object sender, EventArgs e)
            {
                decimal.TryParse((sender as TextBox).Text, NumberStyles.Currency, CultureInfo.CreateSpecificCulture("tr-tr").NumberFormat, out GunlukCiro);
                (sender as TextBox).Text = GunlukCiro.ToString("C", CultureInfo.CreateSpecificCulture("tr-tr").NumberFormat);
            }
    NumberStyles.Currency kısmını değiştirebilirsin istersen bu haliyel sonunda TL olacak şekilde yazar.

    22 Ekim 2015 Perşembe 08:08
  • Sen diyorsunki bütün standartlar öyle ama ben böyle olsun istiyorum diyorsan devam et kardeşim 

    Ama sana bir fikir vereyim Zaten girilenin lengt ini biliyorsun son iki haneyi al

    sonra son iki haneyi sil başında virgül olacak şekilde tekrar sonuna ekleyebilirsin kolay gelsin


    Bilgisayar,Hayallerini, Mantığını Kullanarak Gerçekleştirir...

    22 Ekim 2015 Perşembe 08:12
  • WebForms ve text_changed :)

    www.mvcblog.org
    e-mail: onay[nokta]yalciner[at]hotmail[nokta]com

    ASP miymiş hiç bakmamış  mıyım yaaa :)
    22 Ekim 2015 Perşembe 08:18
  • Sen diyorsunki bütün standartlar öyle ama ben böyle olsun istiyorum diyorsan devam et kardeşim 

    Ama sana bir fikir vereyim Zaten girilenin lengt ini biliyorsun son iki haneyi al

    sonra son iki haneyi sil başında virgül olacak şekilde tekrar sonuna ekleyebilirsin kolay gelsin


    Bilgisayar,Hayallerini, Mantığını Kullanarak Gerçekleştirir...

    Hocam standart nedir tl para birimi kalıbı tamam ama verilen veriye göre işleme yanlış oluyor,

    Allah aşkına 

    decimal GunlukCiro;
                decimal.TryParse(TextBox1.Text, NumberStyles.Currency, CultureInfo.CurrentUICulture.NumberFormat, out GunlukCiro);
                TextBox1.Text = string.Format(CultureInfo.CreateSpecificCulture("tr-TR"), "{0:C}", GunlukCiro);

    bu kod ile bir dener misiniz 50,42 krş yazmayı yada 500 tl 56 krş deneyin size döndüren değer 50.056,00 ₺ bu şekilde oluyor  50 bin  56 tl 00 krş diye. sıkıntı nedir ben nasıl yazmalıyım o zaman textbox ta 56,42 Tl görebilmek için

    bu işlemin bu kadar kaos olacağını düşünmüyordum o yüzden sanırım nette bir oturmuş örneğini bulamadım

    22 Ekim 2015 Perşembe 08:19
  • MsgBox(Int(TextBox1.Text) / 100)

    şekilde yaz :D istediğin sonuc

    bak böyle yapmayacaksın :D kolayı varmış hayati hocam sağolsun :D

    'Dim sonuc As Object
            'sonuc = TextBox1.Text
            'Dim uzunluk As Integer
            'uzunluk = sonuc.ToString.Length
            'Dim kesilen As String = sonuc.Substring(sonuc.ToString.Length - 2, 2)
            'sonuc = sonuc.ToString.Remove(sonuc.ToString.Length - 2, 2)
            'sonuc = sonuc & "," & kesilen
            'MsgBox(sonuc)


    Bilgisayar,Hayallerini, Mantığını Kullanarak Gerçekleştirir...

    22 Ekim 2015 Perşembe 08:25
  • teşekkürler vakit ayırdığınız için olmuyor sanırım ben  c# ile yazıyorum.

    sırf yanlış yolda olmamak adına fatura bile aldım üzerindeki yazım tipine bakarak işlem yapmak için . farklı anlaşılmasını anlamış değilim 

    şu doğru sonuç veriyor dediğini kod ile ;

    decimal GunlukCiro;
                decimal.TryParse(TextBox1.Text, NumberStyles.Currency, CultureInfo.CurrentUICulture.NumberFormat, out GunlukCiro);
                TextBox1.Text = string.Format(CultureInfo.CreateSpecificCulture("tr-TR"), "{0:C}", GunlukCiro);

    http://www.muhasebeuygulama.com/faturalar/IMAGE0018.png

    bu resimdeki tutarları textbox ta yazmayı denerseniz sanırım konu çözülecek

    22 Ekim 2015 Perşembe 08:36
  • burhanx47: arkadaşım napıyorsun sen ya? 100 e bölüyorsun, binler ayracını replace ediyorsun, substringle kuruş hanesini alıyorsun, nedir bunlar neyin kafası bu? Adamın kafasını yalan yanlış şeylerle allak bullak ettiniz.

    Recep kardeşim:

    Web.Configde system.web /  pages / culture ve uiculture ayarları var. Bunun default valuesi auto dur. Bu da işletim sisteminin diline göre binler ve ondalık ayraçlarının değişiklik göstereceği anlamına gelir.

    Regional settingsi İngilizce ayarlı bir bilgisayarda virgül koyarsan bunu binler ayracı (en-US), Türkçe bir işletim sisteminde ise kuruş ayracı (tr-TR) kabul eder. bunun için herhangi bir kod falan yazmana gerek yok. Bırak kullanıcı istediği gibi girsin değeri. 

    Neden güldüm; senin her text changed eventi sunucuya bir post requesti yollar bunun için güldüm.


    www.mvcblog.org
    e-mail: onay[nokta]yalciner[at]hotmail[nokta]com


    22 Ekim 2015 Perşembe 10:27
    Moderatör
  • teşekkürler hocam vermiş olduğunuz bilgi için. ben asp.net te yeniyim web formunda sadece 1 adet text changed eventli işlem var sadece buradan request gidecek eğer çoklu olsaydı bunun farklı yollarınıda araştırmam gerekirdi. bunada çözüm olarak tüm sayfanın tekrar yenilenmesini  değil ajax kontrolü ile sadece bunun yenlienmesini yapıcam . çöze çöze ilerliyorum delphi ve fastreport kullanıyordum hocam c# temeli ile asp.net e geçtirm şu an evet bazı şeyleri bilsemde burada yazamıyorum bulamıyorum şu an ise devexpress ile raporlama konusunda yardım isteyeceğim. internette araştırdığımda master detail rapor çekiliyor ama parametre olayı yok.

    misal delphi de sqldatasource dataset fastreport bileşeni eklerdim.

    bir sorgu yaptığımda sonucu tabloda görürdüm bunu yazdır derdim tablodaki verileri fastreport a gönderirdi. ben bu alanları raporlama sayfasında düzenlemiş toplamaysa toplama başka işlemse başka işlem o bantı aşağı çeker sonucu gösterirdi grid içerisindeki verileri

    şimdi burada bunu nasıl yapacağım internette db den tablonun alayını alıp rapor sayfası tasarlayıp konuyu bitirmiş

    22 Ekim 2015 Perşembe 18:29
  • burhanx47: arkadaşım napıyorsun sen ya? 100 e bölüyorsun, binler ayracını replace ediyorsun, substringle kuruş hanesini alıyorsun, nedir bunlar neyin kafası bu? Adamın kafasını yalan yanlış şeylerle allak bullak ettiniz.

    Recep kardeşim:

    Web.Configde system.web /  pages / culture ve uiculture ayarları var. Bunun default valuesi auto dur. Bu da işletim sisteminin diline göre binler ve ondalık ayraçlarının değişiklik göstereceği anlamına gelir.

    Regional settingsi İngilizce ayarlı bir bilgisayarda virgül koyarsan bunu binler ayracı (en-US), Türkçe bir işletim sisteminde ise kuruş ayracı (tr-TR) kabul eder. bunun için herhangi bir kod falan yazmana gerek yok. Bırak kullanıcı istediği gibi girsin değeri. 

    Neden güldüm; senin her text changed eventi sunucuya bir post requesti yollar bunun için güldüm.


    www.mvcblog.org
    e-mail: onay[nokta]yalciner[at]hotmail[nokta]com


    Hocam Yanlış okudunuz galiba böyle yapmayacaksın dedim zaten.


    Bilgisayar,Hayallerini, Mantığını Kullanarak Gerçekleştirir...

    23 Ekim 2015 Cuma 06:44