JavaScript Arrondi


Exemple

Arrondi

Math.round() la valeur à l'entier le plus proche en utilisant un demi-arrondi pour rompre les liens.

var a = Math.round(2.3);       // a is now 2  
var b = Math.round(2.7);       // b is now 3
var c = Math.round(2.5);       // c is now 3

Mais

var c = Math.round(-2.7);       // c is now -3
var c = Math.round(-2.5);       // c is now -2

Notez comment -2.5 est arrondi à -2 . En effet, les valeurs intermédiaires sont toujours arrondies, c'est-à-dire qu'elles sont arrondies à l'entier avec la valeur supérieure suivante.


Arrondir

Math.ceil() arrondira la valeur vers le haut.

var a = Math.ceil(2.3);        // a is now 3
var b = Math.ceil(2.7);        // b is now 3

un nombre négatif ceil vers zéro

var c = Math.ceil(-1.1);       // c is now 1

Arrondir

Math.floor() la valeur vers le bas.

var a = Math.floor(2.3);        // a is now 2
var b = Math.floor(2.7);        // b is now 2

floor ing un nombre négatif arrondira loin de zéro.

var c = Math.floor(-1.1);       // c is now -1

Tronquer

Avertissement: à l' aide des opérateurs au niveau du bit (sauf >>> ) applique uniquement aux numéros entre -2147483649 et 2147483648 .

2.3  | 0;                       // 2 (floor)
-2.3 | 0;                       // -2 (ceil)
NaN  | 0;                       // 0
6

Math.trunc()

Math.trunc(2.3);                // 2 (floor)
Math.trunc(-2.3);               // -2 (ceil)
Math.trunc(2147483648.1);       // 2147483648 (floor)
Math.trunc(-2147483649.1);      // -2147483649 (ceil)
Math.trunc(NaN);                // NaN

Arrondir aux décimales

Math.floor , Math.ceil() et Math.round() peuvent être utilisés pour arrondir à un nombre de décimales

Arrondir à 2 décimales:

 var myNum = 2/3;               // 0.6666666666666666
 var multiplier = 100;
 var a = Math.round(myNum * multiplier) / multiplier;  // 0.67
 var b = Math.ceil (myNum * multiplier) / multiplier;  // 0.67
 var c = Math.floor(myNum * multiplier) / multiplier;  // 0.66

Vous pouvez également arrondir à un nombre de chiffres:

 var myNum = 10000/3;           // 3333.3333333333335
 var multiplier = 1/100;
 var a = Math.round(myNum * multiplier) / multiplier;  // 3300
 var b = Math.ceil (myNum * multiplier) / multiplier;  // 3400
 var c = Math.floor(myNum * multiplier) / multiplier;  // 3300

Comme une fonction plus utilisable:

 // value is the value to round
 // places if positive the number of decimal places to round to
 // places if negative the number of digits to round to
 function roundTo(value, places){
     var power = Math.pow(10, places);
     return Math.round(value * power) / power;
 }
 var myNum = 10000/3;    // 3333.3333333333335
 roundTo(myNum, 2);  // 3333.33
 roundTo(myNum, 0);  // 3333
 roundTo(myNum, -2); // 3300

Et les variantes pour ceil et floor :

 function ceilTo(value, places){
     var power = Math.pow(10, places);
     return Math.ceil(value * power) / power;
 }
 function floorTo(value, places){
     var power = Math.pow(10, places);
     return Math.floor(value * power) / power;
 }