Math.floor()
fonctionnera, mais c'est très lent comparé à l'utilisation d'une méthode bit à bit. OR
fonctionnement :
var rounded = 34.923 | 0;
alert( rounded );
//alerts "34"
EDIT Math.floor()
est pas plus lent que l'utilisation de l'opérateur |. Merci à Jason S pour avoir vérifié mon travail.
Voici le code que j'ai utilisé pour tester :
var a = [];
var time = new Date().getTime();
for( i = 0; i < 100000; i++ ) {
//a.push( Math.random() * 100000 | 0 );
a.push( Math.floor( Math.random() * 100000 ) );
}
var elapsed = new Date().getTime() - time;
alert( "elapsed time: " + elapsed );
21 votes
Arrondir vers zéro ou vers l'infini négatif ?