Comment arrondir un nombre en JavaScript?
math.round()
ne fonctionne pas car il l'arrondit à la décimale la plus proche.
Je ne sais pas s'il y a une meilleure façon de le faire autre que de le séparer au point décimal en gardant le premier bit. Il doit y avoir...
javascript
math
rounding
Ben Shelock
la source
la source
Réponses:
L'utilisation
Math.floor()
est une façon de procéder.Plus d'informations: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/floor
la source
Arrondi vers l'infini négatif -
Math.floor()
L'arrondi vers zéro - généralement appelé
Truncate()
, mais non pris en charge par JavaScript - peut être émulé en utilisantMath.ceil()
des nombres négatifs etMath.floor()
des nombres positifs.la source
x | 0
.Math.floor()
fonctionnera, mais c'est très lent par rapport à l'utilisation d'uneOR
opération au niveau du bit :EDIT
Math.floor()
n'est pas plus lent que d'utiliser le | opérateur. Merci à Jason S d'avoir vérifié mon travail.Voici le code que j'ai utilisé pour tester:
la source
|
convertit en un entier 32 bits, tronqué;Math.floor
arrondit vers le bas. jsfiddle.net/minitech/UVG2wVous pouvez essayer d'utiliser cette fonction si vous devez arrondir à un nombre spécifique de décimales
exemples
la source
Pour arrondir vers l'infini négatif, utilisez:
Pour arrondir vers le bas vers zéro (si le nombre peut arrondir à un entier 32 bits compris entre -2147483648 et 2147483647), utilisez:
Pour arrondir vers le bas vers zéro (pour n'importe quel nombre), utilisez:
la source
L'arrondi d'un
number
vers0
peut être effectué en soustrayant sa partie fractionnaire signéenumber % 1
:Comme
Math.floor
(arrondit vers-Infinity
) cette méthode est parfaitement précise.Il existe des différences dans le traitement des
-0
,+Infinity
et-Infinity
si:la source
la source
Était en train de jouer avec du code elses de quelqu'un aujourd'hui et a trouvé ce qui semble arrondi aussi:
Pour plus d'informations sur le décalage à droite de la propagation des signes (>>), voir Opérateurs MDN au niveau du bit
Il m'a fallu un certain temps pour comprendre ce que cela faisait: D
Mais comme souligné ci-dessus, Math.floor () fonctionne et semble plus lisible à mon avis.
la source
Vous devez mettre -1 pour arrondir la moitié et ensuite multiplier par -1 comme dans l'exemple ci-dessous.
la source
Voici math.floor utilisé dans un exemple simple. Cela pourrait aider un nouveau développeur à se faire une idée de comment l'utiliser dans une fonction et ce qu'elle fait. J'espère que ça aide!
la source