folder Tahribat.com Forumları
linefolder Html - CSS - XML - JavaScript - Ajax
linefolder Javascript Decimal Matematiksel İşlem



Javascript Decimal Matematiksel İşlem

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    AsayisciAsayisci
    Asayisci
    Asayisci's avatar
    Kayıt Tarihi: 14/Eylül/2009
    Erkek
    antichrist bunu yazdı

    Hocam javascript'de , ile sayı ayırma gibi bir notasyon yok o yüzden bence C#'da işlem yaparken CultureInfo kullanarak float değerlerde , yerine . kullanımını değiştirmen daha sağlıklı olur gibi geliyor. Javascript'de takla atmana da gerek kalmaz.

    System.Globalization.CultureInfo customCulture = (System.Globalization.CultureInfo)System.Threading.Thread.CurrentThread.CurrentCulture.Clone();
    customCulture.NumberFormat.NumberDecimalSeparator = ".";
    
    System.Threading.Thread.CurrentThread.CurrentCulture = customCulture;

     

    Javascript'de , konmaması için de input type="number" olarak belirtirsen o input'a decimal ve int sayılar hariç girişi engelleyebilirsin.

    hocam bu dediğiniz c# tarafı için sanırım

    kullanıcı tarafında kullanıcı küsüratlı rakam girdiğinde bunu clientside tarafta ancak javascript ile çözmemiz gerekiyor.

  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    baysevgi77
    baysevgi77's avatar
    Banlanmış Üye
    Kayıt Tarihi: 27/Mart/2007
    Erkek
    baysevgi77 bunu yazdı
    function TutarChange() {
     
        var x = document.getElementById("txtTutar");
        var currentVal = x.value;
        document.getElementById("txtKalan").value = currentVal;
    }
    

     

     

    function PesinatChange() {
        var Tutar = 0;
        var Pesinat = 0;
    
        var x = document.getElementById("txtTutar");
        var y = document.getElementById("txtPesinat");
    
        var Tutar = parseFloat(x.value.replace(",","."));
        var Pesinat = parseFloat(y.value.replace(",","."));
        var Kalan = Tutar - Pesinat;
        if (Kalan > -1) {
            var Kalan = Tutar - Pesinat;
            document.getElementById("txtKalan").value = Kalan.toFixed(2).replace(".",",");
        } else { alert('Alınan peşinat Tutardan büyük olamaz!') }
    }
    
    

  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    acemi-webci
    acemi-webci's avatar
    Kayıt Tarihi: 11/Haziran/2008
    Erkek

    Hocam inputa mask yap, belirlediğin format dışında değer girilmesin.

    attıyorum input formatın 9999,9999 şeklinde olsun, parseFloattan önce virgülleri nokta ile değiştir.

    parseFloatın decimal ayracı nokta;

    https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/parseFloat#description

     

    Mask için

    https://github.com/uNmAnNeR/imaskjs

     


    ...
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    AsayisciAsayisci
    Asayisci
    Asayisci's avatar
    Kayıt Tarihi: 14/Eylül/2009
    Erkek
    baysevgi77 bunu yazdı
    baysevgi77 bunu yazdı
    function TutarChange() {
     
        var x = document.getElementById("txtTutar");
        var currentVal = x.value;
        document.getElementById("txtKalan").value = currentVal;
    }
    

     

     

    function PesinatChange() {
        var Tutar = 0;
        var Pesinat = 0;
    
        var x = document.getElementById("txtTutar");
        var y = document.getElementById("txtPesinat");
    
        var Tutar = parseFloat(x.value.replace(",","."));
        var Pesinat = parseFloat(y.value.replace(",","."));
        var Kalan = Tutar - Pesinat;
        if (Kalan > -1) {
            var Kalan = Tutar - Pesinat;
            document.getElementById("txtKalan").value = Kalan.toFixed(2).replace(".",",");
        } else { alert('Alınan peşinat Tutardan büyük olamaz!') }
    }
    
    

    dostum azimle çalışan duvarı delermiş.
    oldu :)
    teşekkür ederim.

  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Elif - Efe
    rakkoc
    rakkoc's avatar
    Kayıt Tarihi: 19/Aralık/2003
    Homo

    Hocam gördüğüm kadari ile replace fonksionunu ters yapiyorsun.

        var Tutar = parseFloat(x.value.replaceAll(".",","));
        var Pesinat = parseFloat(y.value.replaceAll(".",","));

    yerine 

        var Tutar = parseFloat(x.value.replaceAll(",","."));
        var Pesinat = parseFloat(y.value.replaceAll(",","."));

    olmasi gerekiyor.

    Ben bu tarz işlemler için DecimalJs diye bir kütüphane kullanıyorum. bu sayede virgulden önce 64 hane, virgulden sonra 64 haneden 128 haneli sayılarda işlem yapabilmeni sağlıyor. Ayrica Fload gibi 1.1 ile 1.01 i topladiğinda 2.11000000006 gibi bir değer elde edebilirsin. (güvenli kabul edilmez) bunun gibi sorunlar yaşamamak için böyle DecimalJS BigNumberJs gibi kütüphaneler kullanmak zorunda kaliyoruz.


    Bu aralar fazla yogunum. Unuttugum seyler oluyorsa affola. DM vs atın.
  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    AsayisciAsayisci
    Asayisci
    Asayisci's avatar
    Kayıt Tarihi: 14/Eylül/2009
    Erkek
    TheAvenqer bunu yazdı

    Öncelik globalde küsürat ayracı . ile ifade edilir basamak ayracı , ile TR de ise tam tersi küsürat , basamak . olarak ifade ediliyor bundan dolayı

     

    
    
        
        
        
        
        
    
    
        < id="tutar" ="text" placeholder="Tutar" />
        < id="pesinat" ="text" placeholder="Peşinat" />
        < id="kalan" ="text" placeholder="Kalan" />
    
    
    
     

    thanks..

Toplam Hit: 2413 Toplam Mesaj: 17
javascirpt decimal