Comment arrondir un flottant à l’int le plus proche en C #?

En C #, comment arrondir un flottant au plus proche int?

Je vois Math.Ceiling et Math.Round, mais ceux-ci retournent une décimale. Est-ce que j’utilise l’un d’entre eux, puis jeté dans un Int?

Si vous voulez arrondir au plus proche int:

int rounded = (int)Math.Round(precise, 0); 

Vous pouvez aussi utiliser:

 int rounded = Convert.ToInt32(precise); 

Qui utilisera Math.Round(x, 0); pour arrondir et jeter pour vous. Il a l’air plus net mais est légèrement moins clair que l’OMI.


Si vous voulez arrondir:

 int roundedUp = (int)Math.Ceiling(precise); 

Du haut de ma tête:

 float fl = 0.678; int rounded_f = (int)(fl+0.5f); 

(int) Math.Round (myNumber, 0)

Le plus simple est d’y append simplement 0.5f , puis de le convertir en un int.

Est-ce que j’utilise l’un d’entre eux, puis jeté dans un Int?

Oui. Cela ne pose aucun problème. Les décimales et les doubles peuvent représenter des entiers exactement, donc il n’y aura pas d’erreur de représentation. (Vous n’obtiendrez pas un cas, par exemple, où Round renvoie 4.999 … au lieu de 5.)

Vous pouvez lancer dans un int à condition que vous soyez sûr qu’il soit dans la plage pour un int (Int32.MinValue à Int32.MaxValue).