J'ai un numéro ("double") de int/int (comme 10/3).
Quel est le meilleur moyen d'approximation par excès et de le convertir en int sur C #?
Vous demandez System.Math.Ceiling ?
Math.Ceiling(0.2) == 1
Math.Ceiling(0.8) == 1
Math.Ceiling(2.6) == 3
Math.Ceiling(-1.4) == -1
int scaled = (int)Math.Ceiling( (double) 10 / 3 ) ;
Par "approximation par excès", je suppose que vous essayez "d'arrondir" le nombre de type double. Ainsi, la méthode "plafond" de @Doug McClean fonctionne très bien.
Voici une note: si vous commencez par double x = 0.8;
et vous effectuez la conversion de type par (int)x;
vous obtenez 0
. Ou, si vous le faites (int)Math.Round(x);
vous obtenez 1
. Si vous commencez par double y = 0.4;
et vous effectuez la conversion de type par (int)y;
vous obtenez 0
. Ou, si vous le faites (int)Math.Round(y);
vous obtenez 0
.
Considérez 2,42, vous pouvez dire que c'est 242/100 btw, vous pouvez le simplifier à 121/50.