Comment arrondir un nombre en Javascript?
Je veux utiliser Javascript pour arrondir un nombre. Depuis, le nombre est de la monnaie, je veux qu'il rond comme dans ces exemples (2 décimales):
- 192.168 => 192.20
- 192.11 => 192.20
- 192.21 => 192.30
- 192.26 => 192.30
- 192.20 => 192.20
Comment réaliser cela à l'aide de Javascript? Intégré dans la fonction Javascript va arrondir le nombre basé sur le standard de la logique (moins et plus de 5 pour arrondir).
Vous devez vous connecter pour publier un commentaire.
ceil()
vous donnera193
, donc nous devons nous assurer que toute la précision que nous voulons garder est avant la virgule. Puis nous avons fait l'opération inverse afin de rétablir l ' “original” de la valeur.192.19999999999997
, vous pouvez appliquer.toFixed(1)
à lanum
Peu en retard mais, peut créer une réutilisables fonction javascript à cet effet:
Appeler la fonction comme
Normal arrondissement de travail avec un petit tweak:
et si vous voulez garder un format de devise, vous pouvez utiliser la méthode du Numéro
.toFixed()
Bien que ce sera une Chaîne =)
price.toFixed(2)
Très près à TheEye réponse, mais j'ai changer un peu la chose pour le faire fonctionner:
JS:
L'OP attend deux choses:
A. à arrondir à la hausse des dixièmes, et
B. pour afficher un zéro dans les centièmes place (typique d'un besoin avec de la monnaie).
Répondant à la fois à l'exigence semble nécessiter une méthode distincte pour chacun des ci-dessus. Voici une approche qui s'appuie sur suryakiran de la proposition de réponse:
Note importante: cette solution produit un résultat très différent et le négatif exponentielle des nombres.
Pour les besoins de la comparaison entre cette réponse et deux qui sont très similaires, voir les 2 approches. Le premier simplement arrondit au centième le plus proche par habitude, et la seconde, tout simplement arrondi au centième le plus proche (le plus grand).
ok, ce qui a été répondu, mais j'ai pensé que vous aimeriez voir ma réponse qui appelle les mathématiques.fonction pow() une fois. Je suppose que j'aime garder les choses SÈCHES.
Il met tout cela ensemble. Remplacer Les Mathématiques.round() avec les Mathématiques.ceil() pour un aller-vers le haut au lieu de l'arrondissement, qui est ce que l'OP voulait.
cette fonction limite décimale sans numéro de la ronde
J'ai été en utilisant @AndrewMarshall réponse pendant une longue période, mais a trouvé des cas limites. Les tests suivants ne passe pas:
Voici ce que j'utilise maintenant pour avoir round up se comporter correctement:
Source: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/round
roundUp(37.760000000000005, 4)
devrait être37.7601
, etroundUp(5.83333333, 4)
devrait être5.8334
. Ces deux (et la première) tous vrai pour le fn, je fournis.parseInt toujours arrondi vers le bas soo.....
JS:
ne parseInt()+1