32 Stimmen

Wie konvertiere ich in JavaScript eine Ganzzahl in eine Fließkommazahl?

Ich habe eine Ganzzahl (z.B.. 12 ), und ich möchte sie in eine Gleitkommazahl mit einer bestimmten Anzahl von Nachkommastellen.

Entwurf

function intToFloat(num, decimal) { [code goes here] }
intToFloat(12, 1) // returns 12.0
intToFloat(12, 2) // returns 12.00
// and so on…

58voto

Nick Craver Punkte 609016

Was Sie haben, ist bereits eine Fließkommazahl, es sind alles 64-Bit-Fließkommazahlen in JavaScript.

Um beim Rendern (als String, für die Ausgabe) Dezimalstellen zu erhalten, verwenden Sie .toFixed() etwa so:

function intToFloat(num, decPlaces) { return num.toFixed(decPlaces); }

Sie können es hier ausprobieren (Allerdings würde ich die Funktion umbenennen, da dies keine genaue Beschreibung ist).

3voto

Simon Borsky Punkte 4435

ToFixed(x) ist keine gekreuzte Browserlösung. Die vollständige Lösung ist die folgende:

function intToFloat(num, decPlaces) { return num + '.' + Array(decPlaces + 1).join('0'); }

2voto

Sachin Murali G Punkte 575

Wenn Sie keine feste Anzahl von Dezimalstellen benötigen (oder sich nicht sicher sind), können Sie einfach

xAsString = (Number.isInteger(x)) ? (x + ".0") : (x.toString());

Dies ist z. B. dann von Bedeutung, wenn Sie eine x como 7.0 けど x.toString() wird Ihnen "7" und Sie benötigen die Zeichenkette als "7.0" . Wenn x zufällig ein Fließkommawert ist, wie zum Beispiel 7.1 o 7.233 dann sollte die Zeichenkette auch "7.1" o "7.233" beziehungsweise.

Ohne die Verwendung von Number.isInteger() :

xAsString = (x % 1 === 0) ? (x + ".0") : (x.toString());

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