Wie kann ich eine Zahl in JavaScript abrunden?
math.round()
funktioniert nicht, weil es auf die nächste Dezimalstelle gerundet wird.
Ich bin mir nicht sicher, ob es einen besseren Weg gibt, als es beim Dezimalpunkt auseinanderzubrechen, um das erste Bit beizubehalten. Da muss sein...
javascript
math
rounding
Ben Shelock
quelle
quelle
Antworten:
Die Verwendung
Math.floor()
ist eine Möglichkeit, dies zu tun.Weitere Informationen: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/floor
quelle
Runde in Richtung negative Unendlichkeit -
Math.floor()
Eine Runde gegen Null - normalerweise aufgerufen
Truncate()
, aber von JavaScript nicht unterstützt - kann mitMath.ceil()
negativen undMath.floor()
positiven Zahlen emuliert werden .quelle
x | 0
.Math.floor()
wird funktionieren, aber es ist sehr langsam im Vergleich zu einer bitweisenOR
Operation:EDIT
Math.floor()
ist nicht langsamer als die Verwendung von | Operator. Vielen Dank an Jason S für die Überprüfung meiner Arbeit.Hier ist der Code, den ich zum Testen verwendet habe:
quelle
|
konvertiert in eine 32-Bit-Ganzzahl und schneidet ab;Math.floor
rundet ab. jsfiddle.net/minitech/UVG2wSie können versuchen, diese Funktion zu verwenden, wenn Sie auf eine bestimmte Anzahl von Dezimalstellen abrunden müssen
Beispiele
quelle
Um auf negative Unendlichkeit abzurunden, verwenden Sie:
Verwenden Sie Folgendes, um auf Null abzurunden (wenn die Zahl auf eine 32-Bit-Ganzzahl zwischen -2147483648 und 2147483647 gerundet werden kann):
Verwenden Sie zum Abrunden auf Null (für eine beliebige Zahl):
quelle
Das Runden einer
number
Richtung0
kann durch Subtrahieren des vorzeichenbehafteten Bruchteils erfolgennumber % 1
:Wie
Math.floor
(rundet auf-Infinity
) ist diese Methode vollkommen genau.Es gibt Unterschiede in der Handhabung von
-0
,+Infinity
und-Infinity
zwar:quelle
quelle
Ich habe heute mit einem anderen Code herumgespielt und Folgendes gefunden, das ebenfalls abgerundet zu sein scheint:
Weitere Informationen zur Vorzeichenausbreitung nach rechts (>>) finden Sie unter Bitweise MDN-Operatoren
Ich brauchte eine Weile, um herauszufinden, was das tat: D.
Aber wie oben hervorgehoben, funktioniert Math.floor () und sieht meiner Meinung nach besser lesbar aus.
quelle
Sie müssen -1 setzen, um die Hälfte abzurunden, und danach wie im folgenden Beispiel mit -1 multiplizieren.
quelle
Hier wird math.floor in einem einfachen Beispiel verwendet. Dies kann einem neuen Entwickler helfen, eine Vorstellung davon zu bekommen, wie er in einer Funktion verwendet wird und was er tut. Ich hoffe es hilft!
quelle