2017-07-09 1 views
-2

Well-Nummer als Fließkommazahl zurück und versuchen, im all meine Nummer in einem bestimmten Format ausfällt, ist hierwie es6

1.111 kehrt einiges Ergebnis

Number(parseFloat(number).toFixed(fractionalDigits || 2)) 

dies funktioniert gut, aber in einigen Fällen zurück „1.11“ und nach der Umwandlung in nummerieren es 1,11 als float zurückgegeben werden, was recht ist, aber 2,2 returns „2.20“ und nach dessen Umwandlung es an die Nummer wird 2.2 sein ich es brauche 2.20 als Schwimmer sein

100 returns „100.00“ wegen toFixed Funktion und nach dessen Umwandlung auf 100 i an die Nummer zurück müssen sie 100,00 aber als Schwimmer

, wie kann ich das tun?

+2

'2.20 ==== 2.2' –

+3

Sie möchten die Nummer beim Drucken formatieren, nicht seine interne Darstellung ändern. – Marvin

+0

Ich brauche es in einem bestimmten Format! aber ich brauche es als Schwimmer –

Antwort

6

Sie können nicht.

Floats sind numerische Werte und es gibt keinen numerischen Unterschied zwischen 2.2 und 2.20.

Bei der Ausgabe eines Floats wird es in eine Zeichenfolge für die Anzeige konvertiert, und das ist die Nummer in ihrer einfachsten Form. Das heißt, 2.2, da das nachlaufende 0 keine Bedeutung hat.

Sie möchten nicht 00000002.20000000, würden Sie? Führende Nullen sind genauso nutzlos.

Wenn nachfolgende Nullen angezeigt werden sollen, verwenden Sie . Dafür ist die Funktion zuständig. Was Sie gerade haben, ist die Umwandlung einiger willkürlicher Eingaben in einen Float, von einem Float zu einem String mit einer festen Anzahl von Dezimalstellen, und dann wieder zurück zu einem Float. Alles, was Sie erreicht haben, ist die Nummer zu kürzen.

1

Für das Ergebnis Sie fractionDigits aus Parameter entfernen möchten, und entfernen Sie das las

parseFloat(number).toFixed(2) 

die externe Nummer wurde funktionieren sollte(), wie Sie bereits die Nummer analysiert nicht erforderlich, da float.Hope es

hilft was passiert ist, war die Nummer-Funktion entfernt unnötige 0, dass die toFixed setzte sich.