Ich wollte eine Zahl mit 2 Dezimalstellen anzeigen.
Ich dachte, ich könnte toPrecision(2)
in JavaScript verwenden.
Wenn die Nummer jedoch ist 0.05
, bekomme ich 0.0500
. Ich möchte lieber, dass es gleich bleibt.
Sehen Sie es auf JSbin .
Was ist der beste Weg, dies zu tun?
Ich kann mir vorstellen, ein paar Lösungen zu programmieren, aber ich würde mir vorstellen (ich hoffe), dass so etwas eingebaut ist?
Sie könnten es mit der
toFixed
Funktion tun , aber es ist fehlerhaft im IE . Wenn Sie eine zuverlässige Lösung wünschen, sehen Sie sich meine Antwort hier an .quelle
float_num.toFixed(2);
funktioniert gut)Versuchen Sie
toFixed
statttoPrecision
.quelle
Ich weiß nicht, wie ich zu dieser Frage gekommen bin, aber selbst wenn dies viele Jahre her ist, möchte ich eine schnelle und einfache Methode hinzufügen, die ich befolge und die mich nie im Stich gelassen hat:
quelle
parseFloat()
dort? Es sollte nur verwendet werden, wenn die Nummer aus einer Zeichenfolge stammt.function round(value, decimals) { return Number(Math.round(value+'e'+decimals)+'e-'+decimals); }
Die Antwort folgt diesem Link: http://www.jacklmoore.com/notes/rounding-in-javascript/
quelle
number.parseFloat(2)
funktioniert, gibt aber eine Zeichenfolge zurück.Wenn Sie es als Zahlentyp beibehalten möchten, können Sie Folgendes verwenden:
Math.round(number * 100) / 100
quelle
Sie könnten versuchen, zu mischen
Number()
undtoFixed()
.Lassen Sie Ihre Zielnummer in eine schöne Zeichenfolge mit X-Ziffern konvertieren und konvertieren Sie die formatierte Zeichenfolge in eine Nummer.
Number( (myVar).toFixed(2) )
Siehe Beispiel unten:
quelle
und hier ist die Syntax
Das Argument digits ist optional und standardmäßig 0. Der Rückgabetyp ist string not number. Sie können es aber mit in Zahlen umwandeln
Es kann auch Ausnahmen auslösen wie
TypeError
:RangeError
Hier finden Sie alle Details und die Kompatibilität im Browser.
quelle
quelle
Ich habe diese Funktion gemacht. Es funktioniert gut, gibt aber einen String zurück.
quelle