Arrondi des valeurs vers le haut ou vers le bas en C#
J'ai créé un jeu qui donne un score à la fin du jeu, mais le problème est que ce score est parfois un certain nombre avec beaucoup de chiffres après le point décimal (comme 87.124563563566). Comment pourrais-je aller sur l'arrondi vers le haut ou vers le bas la valeur pour que je puisse avoir quelque chose comme 87.12?
Merci!
- Pourquoi il y a un big bounty sur une question comme ça?
- Et pourquoi tant de upvotes sur une réponse que seul des tours à des nombres entiers, lorsque la question vous donne un exemple avec deux décimales?
- Il semble que la générosité de l'affiche est allé sur un bounty-spree au cours de la dernière semaine.
Vous devez vous connecter pour publier un commentaire.
Essayez d'utiliser Les mathématiques.Ronde. Ses diverses surcharges vous permettent de spécifier le nombre de chiffres que vous voulez et aussi la façon dont vous le souhaitez arrondir le nombre.
Math.Round(87.123453563566, 2, MidpointRounding.AwayFromZero);
.string value="12.6"
et besoin de le stocker dans un entier...Utilisation
Math.Ceiling(87.124563563566)
ouMath.Floor(87.124563563566)
pour toujours arrondi vers le haut ou arrondi vers le bas. Je crois que cela va à l'entier le plus proche.De toujours arrondir à 2 décimales:
Toujours arrondi à 2 décimales:
Vous voulez juste le format de la chaîne, de ne pas corrompre la partition.
Le nombre est très bien pour
double
type de variable, et mathématiquement correct.Vous avez deux bien trouver des solutions pour éviter de telles situations.
Math
bibliothèque.Je vous voulez savoir pourquoi vous voyez cette "bizarre", et vous pouvez y lire : les nombres irrationnels
Je n'ai pas assez de réputation pour ajouter des commentaires, j'ai donc créer une réponse.
Mais timouride est bon, juste le format de la chaîne.
Je pense que la chose que vous cherchez est:
Certains de la coutume manières de formater vos valeurs sont décrites ici:
https://msdn.microsoft.com/en-US/library/7x5bacwt(v=vs. 80).aspx
Beaucoup de gens préconisent vous utilisez la bibliothèque de Mathématiques à votre Tour de nombre, mais même ce qui peut entraîner de très petites erreurs d'arrondi.
Les mathématiques.Tour peuvent, et parfois ne retour des nombres avec un nombre de zéros et les très petites arrondir les erreurs. C'est parce que, en interne, les chars et les doubles sont tout de même représentées par des nombres binaires, et il peut souvent être difficile de représenter certains petits nombres décimaux proprement.
Votre meilleure option est d'utiliser uniquement la chaîne de formatage ou, si vous ne le souhaitez à fait ronde, combiner les deux: