2009-02-02 7 views
4

En C# arrondir un nombre est facile:Comment arrondir un nombre décimal à une fraction spécifique en C#?

Math.Round(1.23456, 4); // returns 1.2346 

Cependant, je veux arrondir un nombre tel que la partie décimale du nombre arrondi à la partie la plus proche fraction d'une fraction prédéfinie (par exemple 1/8ème) et J'essaie de savoir si la bibliothèque. NET a déjà ce intégré.

Donc, par exemple, si je veux arrondir un nombre décimal à un huitième entier, je voudrais appeler quelque chose comme:

Ainsi le premier param est le nombre que je veux arrondir et le second paramètre dicte la fraction d'arrondi. Ainsi, dans cet exemple, après arrondi, les chiffres qui suivent le point décimal ne peuvent être que l'une des huit valeurs: .000, .125, .250, .375, .500, .625, .750, .875

Les questions: Cette fonction est-elle intégrée dans .NET quelque part? Si non, quelqu'un at-il un lien vers une ressource qui explique comment aborder la résolution de ce problème?

Répondre

16

Vous pouvez le faire:

Math.Round(n * 8)/8.0 
5

Je ne sais pas si elle est intégrée dans .NET, mais je voudrais simplement faire:

Math.Round(x * 8, 0)/8; 

à arrondir au plus proche 8. Remplacez votre numéro favori par d'autres "résolutions".

Questions connexes