529 Stimmen

Wie zu parsen Float mit zwei Dezimalstellen in Javascript?

Ich habe den folgenden Code. Ich möchte, dass wenn price_result gleich einer ganzen Zahl ist, sagen wir 10, dann möchte ich zwei Dezimalstellen hinzufügen. Also wäre 10 gleich 10,00. Oder wenn es gleich 10,6 ist, wäre es 10,60. Ich bin mir nicht sicher, wie ich das machen soll.

price_result = parseFloat(test_var.split('$')[1].slice(0,-1));

1135voto

Mahesh Velaga Punkte 20889

Sie können verwenden toFixed() um das zu tun

var twoPlacedFloat = parseFloat(yourString).toFixed(2)

89voto

Rob Boerman Punkte 2070

Wenn Sie Leistung benötigen (wie bei Spielen):

Math.round(number * 100) / 100

Es ist etwa 100 Mal so schnell wie parseFloat(number.toFixed(2))

http://jsperf.com/parsefloat-tofixed-vs-math-round

59voto

Vlada Punkte 1583

Wenn Sie toFixed gibt es den Wert immer als String zurück. Das macht den Code manchmal kompliziert. Um das zu vermeiden, können Sie eine alternative Methode für Number erstellen.

Number.prototype.round = function(p) {
  p = p || 10;
  return parseFloat( this.toFixed(p) );
};

und verwenden:

var n = 22 / 7; // 3.142857142857143
n.round(3); // 3.143

oder einfach:

(22/7).round(3); // 3.143

21voto

pvanallen Punkte 539

Um eine Zahl zurückzugeben, fügen Sie eine weitere Ebene von Klammern hinzu. Hält die Sache sauber.

var twoPlacedFloat = parseFloat((10.02745).toFixed(2));

9voto

Savage Punkte 2168

Wenn Ihr Ziel das Parsen ist und Ihre Eingabe ein Literal sein könnte, dann würden Sie eine float y toFixed nicht zur Verfügung stellen, daher sind hier zwei einfache Funktionen, die dies ermöglichen:

function parseFloat2Decimals(value) {
    return parseFloat(parseFloat(value).toFixed(2));
}

function parseFloat2Decimals(value,decimalPlaces) {
    return parseFloat(parseFloat(value).toFixed(decimalPlaces));
}

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X