Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten.Erfahre mehr über dieses Experiment.
Math.trunc()
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since Juli 2015.
Die statische MethodeMath.trunc() gibt den Ganzzahlanteil einer Zahl zurück, indem alle Nachkommastellen entfernt werden.
In diesem Artikel
Probieren Sie es aus
console.log(Math.trunc(13.37));// Expected output: 13console.log(Math.trunc(42.84));// Expected output: 42console.log(Math.trunc(0.123));// Expected output: 0console.log(Math.trunc(-0.123));// Expected output: -0Syntax
Math.trunc(x)Parameter
xEine Zahl.
Rückgabewert
Der Ganzzahlanteil vonx.
Beschreibung
Die Funktionsweise vonMath.trunc() ist einfacher als die der anderen dreiMath-Methoden:Math.floor(),Math.ceil() undMath.round(); siekürzt ab (schneidet den Punkt und die Ziffern rechts davon ab), unabhängig davon, ob das Argument eine positive oder negative Zahl ist.
Datrunc() eine statische Methode vonMath ist, verwenden Sie sie immer alsMath.trunc(), anstatt als Methode eines von Ihnen erstelltenMath-Objekts (Math ist kein Konstruktor).
Beispiele
>Verwendung von Math.trunc()
Math.trunc(-Infinity); // -InfinityMath.trunc("-1.123"); // -1Math.trunc(-0.123); // -0Math.trunc(-0); // -0Math.trunc(0); // 0Math.trunc(0.123); // 0Math.trunc(13.37); // 13Math.trunc(42.84); // 42Math.trunc(Infinity); // InfinityVerwendung von bitweise No-Ops zum Kürzen von Zahlen
Warnung:Dies ist aufgrund nicht vernachlässigbarer Randfälle kein Polyfill fürMath.trunc().
Bitweise Operationen konvertieren ihre Operanden in 32-Bit-Ganzzahlen, was historisch genutzt wurde, um Gleitkommazahlen zu kürzen. Zu den gängigen Techniken gehören:
const original = 3.14;const truncated1 = ~~original; // Double negationconst truncated2 = original & -1; // Bitwise AND with -1const truncated3 = original | 0; // Bitwise OR with 0const truncated4 = original ^ 0; // Bitwise XOR with 0const truncated5 = original >> 0; // Bitwise shifting by 0Seien Sie sich bewusst, dass dies im WesentlichentoInt32 ist, was nicht dasselbe wieMath.trunc ist. Wenn der Wert die Bedingung -231 - 1 <value < 231 (-2147483649 <value < 2147483648) nicht erfüllt, würde die Umwandlung überlaufen.
const a = ~~2147483648; // -2147483648const b = ~~-2147483649; // 2147483647const c = ~~4294967296; // 0Verwenden Sie~~ nur als Ersatz fürMath.trunc(), wenn Sie sicher sind, dass der Eingabebereich innerhalb des Bereichs der 32-Bit-Ganzzahlen liegt.
Spezifikationen
| Specification |
|---|
| ECMAScript® 2026 Language Specification> # sec-math.trunc> |