2011-09-18 7 views
2

J'ai un nombre double et je veux l'approximer toujours au plus proche.Approximation de la fraction au plus proche

pour par exemple: 1,2324 -> 1 1,898 -> 2

comment puis-je faire avec C#?

+0

[Utilisation de Round?] (Http://msdn.microsoft.com/en-us/library/system.math.round (v = vs.71) .aspx) – bzlm

+0

Voir http://stackoverflow.com/ questions/14/whats-the-difference-between-math-floor-and-math-truncate-in-net/580252 # 580252 - il vous dit tout ce que vous devez savoir sur les différentes méthodes d'arrondi et de troncature. – paxdiablo

Répondre

3

Utilisez Math.Round().

double d1 = Math.Round(1.2324); //d1 is 1 
double d2 = Math.Round(1.898); //d2 is 2 
+0

Cela se compile comme une erreur "Impossible de convertir le type double en décimal" –

+0

@ 1ntello: Désolé, le type de retour doit être 'double', car l'argument est' double'. – Nawaz

0

Math.Round(double) fait l'affaire. Si vous souhaitez utiliser un nombre variable de décimales derrière le point décimal, vous pouvez utiliser Math.Round(double, int)

L'API décrivant cela est here.