Ich habe den folgenden Code. Ich möchte es so haben, dass ich, wenn price_result gleich einer ganzen Zahl ist, sagen wir 10, zwei Dezimalstellen hinzufügen möchte. 10 wäre also 10.00. Oder wenn es gleich 10,6 wäre, 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));
javascript
floating-point
user357034
quelle
quelle
var twoPlacedFloat = + parseFloat(yourString).toFixed(2)
, um zu konvertieren, um zu schwebenWenn Sie verwenden
toFixed
, wird der Wert immer als Zeichenfolge zurückgegeben. Dies kompliziert manchmal den Code. Um dies zu vermeiden, können Sie eine alternative Methode für Number erstellen.und verwenden:
oder einfach:
quelle
0.1 + 0.2 // 0.30000000000000004
(0.1+0.2).round() // 0.3
Wenn Sie Leistung benötigen (wie in Spielen):
Es ist ungefähr 100 Mal so schnell wie parseFloat (number.toFixed (2))
http://jsperf.com/parsefloat-tofixed-vs-math-round
quelle
number * 1
vermisse ich vielleicht etwas 🤔?Fügen Sie eine weitere Ebene in Klammern hinzu, um eine Zahl zurückzugeben. Hält es sauber.
quelle
var twoPlacedFloat = parseFloat(('2.00').toFixed(2))
erzeugt einen Fehler.Wenn Ihr Ziel das Parsen ist und Ihre Eingabe möglicherweise ein Literal ist, würden Sie ein erwarten
float
und diestoFixed
nicht bereitstellen. Hier sind zwei einfache Funktionen, um dies bereitzustellen:quelle
parseFloat(parseFloat('10.5').toFixed(2))
Rückkehr10.5
erwartet10.50
. AuchparseFloat(parseFloat('10.50').toFixed(2))
zurück10.5
Decke von lodash ist wahrscheinlich die beste
wird auch mit einer Nummer arbeiten und es ist sicher
quelle
@sd Kurze Antwort: In JS gibt es keine Möglichkeit, den Datentyp Number mit nach einer Dezimalstelle nachgestellten Nullen zu setzen.
Lange Antwort: Es ist die Eigenschaft
toFixed
odertoPrecision
Funktion von JavaScript, den String zurückzugeben. Der Grund dafür ist, dass der Datentyp Number keinen Wert wie a = 2.00 haben kann. Er entfernt immer die nachgestellten Nullen nach der Dezimalstelle. Dies ist die eingebaute Eigenschaft des Datentyps Number. Um dies in JS zu erreichen, haben wir zwei Möglichkeitenquelle
Bitte verwenden Sie die folgende Funktion, wenn Sie nicht abrunden möchten.
quelle
Für was es wert ist: Eine Dezimalzahl ist eine Dezimalzahl, Sie runden sie entweder auf einen anderen Wert oder nicht. Intern wird ein Dezimalbruch gemäß der Regel der Gleitkomma-Arthmetik und -Handhabung angenähert. Es bleibt intern eine Dezimalzahl (Gleitkomma, in JS ein Doppel), unabhängig davon, mit wie vielen Ziffern Sie es anzeigen möchten.
Um es für die Anzeige zu präsentieren, können Sie die Genauigkeit der Anzeige durch Konvertierung von Zeichenfolgen nach Belieben auswählen. Die Präsentation ist ein Anzeigeproblem, keine Speichersache.
quelle
Sie können .toFixed () verwenden, um einen 2-stelligen Gleitkommawert zu erhalten
Exampale
quelle
Versuchen Sie dies (siehe Kommentare im Code):
quelle
Einfaches JavaScript, String zum Floaten:
quelle
Die Lösung, die für mich funktioniert, ist die folgende
quelle
Initialisieren Sie den FormArray Form Builder
Formular erstellen
Festlegen von Formularwerten in Form Controller
quelle
Ich habe eine andere Lösung.
Sie können
round()
dies stattdessen verwendentoFixed()
quelle
parseFloat()
ich die Antwort von @zsalzbankround()
für Zahlen in js. Die eigentliche Frage ist, wer dies befürwortet hat.