La fonction Math.trunc() retourne la partie entière d'un nombre en retirant la partie décimale.

Math.trunc(x)={xsix0xsix<0\mathtt{\operatorname{Math.trunc}(x)} = \begin{cases} \left\lfloor x \right\rfloor & \text{if} & x \geq 0 \\ \left\lceil x \right\rceil & \text{if} &x < 0 \end{cases}

Syntaxe

Math.trunc(x)

Paramètres

x
Un nombre.

Valeur de retour

La partie entière du nombre passé en argument.

Description

Contrairement aux autres méthodes Math.floor(), Math.ceil() et Math.round(), Math.trunc() fonctionne de façon très simple : la partie décimale du nombre est retirée et on conserve la partie entière (que le nombre soit positif ou négatif).

Ainsi, si l'argument est un nombre positif, Math.trunc() sera équivalent à Math.floor(), sinon Math.trunc() sera équivalent à Math.ceil().

On notera que l'argument passé à la méthode est converti en nombre de façon implicite.

trunc() est une méthode statique de Math, elle doit toujours être utilisée avec la syntaxe Math.trunc(), elle ne doit pas être utilisée comme la méthode d'un objet qui aurait été instancié (Math n'est pas un constructeur).

Exemples

Utiliser Math.trunc()

Math.trunc(13.37);   // 13
Math.trunc(42.84);   // 42
Math.trunc(0.123);   //  0
Math.trunc(-0.123);  // -0
Math.trunc("-1.123");// -1
Math.trunc(NaN);     // NaN
Math.trunc("toto");  // NaN
Math.trunc();        // NaN

Prothèse d'émulation (polyfill)

Math.trunc = Math.trunc || function(x) {
  if (isNaN(x)) {
    return NaN;
  }
  if (x > 0) {
    return Math.floor(x);
  }
  return Math.ceil(x);
};

Spécifications

Spécification État Commentaire
ECMAScript 2015 (6th Edition, ECMA-262)
La définition de 'Math.trunc' dans cette spécification.
Standard Première définition.
ECMAScript Latest Draft (ECMA-262)
La définition de 'Math.trunc' dans cette spécification.
Projet  

Compatibilité des navigateurs

Update compatibility data on GitHub
OrdinateurMobileServeur
ChromeEdgeFirefoxInternet ExplorerOperaSafariWebview AndroidChrome pour AndroidEdge MobileFirefox pour AndroidOpera pour AndroidSafari pour iOSSamsung InternetNode.js
Support simpleChrome Support complet 38Edge Support complet OuiFirefox Support complet 25IE Aucun support NonOpera Support complet 25Safari Support complet 8WebView Android Support complet OuiChrome Android Support complet OuiEdge Mobile Support complet OuiFirefox Android Support complet 25Opera Android Support complet OuiSafari iOS Support complet 8Samsung Internet Android Support complet Ouinodejs Support complet 0.12

Légende

Support complet  
Support complet
Aucun support  
Aucun support

Voir aussi

Étiquettes et contributeurs liés au document

Contributeurs à cette page : SphinxKnight, teoli, tregagnon
Dernière mise à jour par : SphinxKnight,