2016-04-25 14 views
0

Bitte diesen Code überprüfen:Wenn Zahl vorbei mit Komma Textfeld, warum die Zahl nach dem Komma abgeschnitten getElementByID

function CalCPM() 
{ 
    var nv = document.getElementById('txtviews').value; 
    var nc = document.getElementById('txtcost').value; 
    var result =parseFloat(nc)/parseFloat(nv)/1000; 
    if(!isNaN(result)) 
    { 
     document.getElementById('cpm').value = result.toFixed(4); 
    } 
} 

es gut funktionieren erwarten, wenn Sie Komma der Zahl setzen, bedeutet, wenn Sie in txtviews 1000000 setzen und in txtcost 3000 Sie ein korrektes Ergebnis erhalten, die 3,000 ist

Allerdings, wenn Sie ein Komma in eine der Nummern verwenden, dann beginnt das Problem, wie

, wenn Sie in txtviews 1.000.000 setzen und in txtcost 3000

dann wird das Ergebnis 0,000003

sein oder wenn Sie, indem Sie Wert für txtcost erste beginnen dann wird das Ergebnis 3000,0000

sein, die so oder so keine korrekte Wert ist, eine Idee, was das Problem ist? ?

+0

''100,30,30'.replace (/,/g,' ')' – Rayon

+0

Eine andere einfache Lösung wäre die Verwendung von 'type =" number "' – Rayon

+0

Stellen Sie sicher, dass die Einstellungen für' _decimal symbol_ ' in Ihrer Systemsteuerung ist nicht ',' statt '.'. (Systemsteuerung> Region und Sprache> Format> Zusätzliche Einstellungen> Zahlen> DezimalSymbol). Sonst interpretiert unser System die Eingangsnummern falsch –

Antwort

0

Ich glaube, man müßte sie Streifen aus, und sie dann in (die Kommas, das ist) wieder hinzufügen ..

function CalCPM() 
{ 
    var nv = document.getElementById('txtviews').value.replace(',',''); 
    var nc = document.getElementById('txtcost').value.replace(',',''); 
    var result =parseFloat(nc)/parseFloat(nv)/1000; 
    if(!isNaN(result)) 
    { 
     document.getElementById('cpm').value = Number(result).toLocaleString('en'); 
    } 
} 
0

Diese einfach mit reg-ex lösen kann:

function CalCPM() 
    { 
    var nv = (document.getElementById('txtviews').value).replace(/,/g,''); 
    var nc = (document.getElementById('txtcost').value).replace(/,/g,''); 
    var result =parseFloat(nc)/parseFloat(nv)/1000; 
    if(!isNaN(result)) 
    { 
    document.getElementById('cpm').value = Number(result).toFixed(4); 
    } 
    } 
Verwandte Themen