2016-06-18 9 views
-1

Ich versuche +20,2 auf diese Summe mit Punkt mit Komma 9990,95 mit js oder jqueryberechnet (aufaddieren) mit Punkt/Komma

<span class="sum">9990.95</span> 

var price = $('.sum').text(), 
    calc = parseInt(price, 10) + 20, 
    total = calc.toFixed(2); 

Rückkehr mir 9.990,95 oder diese Summe hinzuzufügen 9990 ohne Komma

versuchte ich so zu

var price = $('.sum').text(), 
    calc = 20, 
    total = price + calc; 

Der Ausgang 9990.9920 war, die entweder nicht korrekt ist.

Gibt es einen Weg, wie man das macht?

+1

Woher wissen Sie, dass es '9990' zurückgibt? Und Sie suchen nach der 'parseFloat' Funktion. – undefined

+0

Mögliches Duplikat von [Wie konvertiert man Zeichenkette in Fließkomma in Javascript?] (Http://stackoverflow.com/questions/642650/how-to-convert-string-into-float-in-javascript) Bitte suchen Sie das nächste Mal. – nicael

Antwort

2

parseInt tut genau, was das Etikett sagt - Parsen einer Zeichenfolge zu einer ganzen Zahl. Ganzzahlen haben per Definition keine Dezimalstellen.

Stattdessen use parseFloat:

calc = parseFloat(price) + 20, 
+3

Oder einfach 'calc = + price + 20'. – nicael

1

Ich denke, OP ist nach einer Möglichkeit, zu analysieren Zahlen mit Punkt oder Komma als Dezimalzeichen in ein Floating-Point-Number:

let parseDecimalPoint = Number.parseFloat; 
 
    parseDecimalComma = str => Number.parseFloat(str.replace('.', '').replace(',', '.')) 
 

 
console.log(parseDecimalComma("+20,2") + parseDecimalComma("9990,95")); 
 
console.log(parseDecimalComma("+20,2") + parseDecimalPoint("9990.95"));

Siehe auch Javascript parse float is ignoring the decimals after my comma