Je veux utiliser Javascript pour arrondir un nombre. Puisque le nombre est une devise, je veux qu'il arrondisse 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 y parvenir en utilisant Javascript? La fonction Javascript intégrée arrondira le nombre en fonction de la logique standard (moins et plus de 5 pour arrondir).
javascript
rounding
cyberfly
la source
la source
ceil()
vous le donnera193
, nous devons donc nous assurer que toute la précision que nous voulons conserver est avant le point décimal. Ensuite, nous faisons l'opération inverse afin de restaurer la valeur «d'origine».192.19999999999997
, vous pouvez postuler.toFixed(1)
aunum
Peu de retard mais, peut créer une fonction javascript réutilisable à cet effet:
Appelez la fonction comme
la source
L'arrondi normal fonctionnera avec une petite modification:
et si vous souhaitez conserver un format de devise, vous pouvez utiliser la méthode Number
.toFixed()
Bien que cela en fasse une chaîne =)
la source
price.toFixed(2)
Très proche de la réponse TheEye , mais je change un petit truc pour le faire fonctionner:
la source
Le PO attend deux choses:
A. arrondir au dixième supérieur, et
B. afficher un zéro à la place des centièmes (un besoin typique avec une devise).
Répondre à ces deux exigences semblerait nécessiter une méthode distincte pour chacun des éléments ci-dessus. Voici une approche qui s'appuie sur la réponse suggérée de suryakiran:
Remarque importante: cette solution produit un résultat très différent avec des nombres négatifs et exponentiels.
Dans un souci de comparaison entre cette réponse et deux qui sont très similaires, voir les 2 approches suivantes. Le premier arrondit simplement au centième le plus proche comme d'habitude, et le second arrondit simplement au centième le plus proche (plus grand).
la source
ok, cela a été répondu, mais j'ai pensé que vous aimeriez voir ma réponse qui appelle une fois la fonction math.pow (). Je suppose que j'aime garder les choses SEC.
Cela met tout en place. Remplacez Math.round () par Math.ceil () pour arrondir au lieu d'arrondir, ce que voulait l'OP.
la source
cette fonction limite décimale sans nombre rond
la source
J'utilise la réponse @AndrewMarshall depuis longtemps, mais j'ai trouvé des cas extrêmes. Les tests suivants ne réussissent pas:
Voici ce que j'utilise maintenant pour que le round se comporte correctement:
Source: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/round
la source
roundUp(37.760000000000005, 4)
devrait être37.7601
etroundUp(5.83333333, 4)
devrait être5.8334
. Ces deux (et le vôtre) sont tous valables pour le fn que j'ai fourni.parseInt arrondit toujours à la baisse soo .....
faire parseInt () + 1
la source