In C#, come faccio a arrotondare un float al più vicino int?Come faccio a arrotondare un float al più vicino int in C#?
Vedo Math.Ceiling e Math.Round, ma restituisce un decimale. Devo usare uno di questi poi lanciato su un Int?
In C#, come faccio a arrotondare un float al più vicino int?Come faccio a arrotondare un float al più vicino int in C#?
Vedo Math.Ceiling e Math.Round, ma restituisce un decimale. Devo usare uno di questi poi lanciato su un Int?
Se si desidera arrotondare al più vicino int:
int rounded = (int)Math.Round(precise, 0);
Puoi anche utilizzare:
int rounded = Convert.ToInt32(precise);
Che useranno Math.Round(x, 0);
per arrotondare e lanciare per te. Sembra più ordinato ma è leggermente meno chiaro.
Se si desidera arrotondare fino:
int roundedUp = (int)Math.Ceiling(precise);
C'è una certa ambiguità nella domanda. Il titolo suggerisce che vuole radunare, mentre afferma che vuole l'int più vicino. Queste sono 2 cose diverse. – mmcdole
Ha voluto arrotondare. Non sarebbe (int) Math.Ceiling (preciso)? – configurator
@configurator, sì, questo è quello che sto pensando. – mmcdole
(int) Math.round (myNumber, 0)
Fuori della parte superiore della mia testa:
float fl = 0.678;
int rounded_f = (int)(fl+0.5f);
Cura di spiegare l'ultima f (0.5f)? –
Mentre un lancio float su un valore int verrà arrotondato per difetto, +0.5 assicura che il cast arrivi all'intro più vicino. Tuttavia, questo funziona solo per i galleggianti positivi. –
posso utilizzare uno di questi poi gettato in un Int?
Sì. Non c'è nessun problema a farlo. Decimali e doppi possono rappresentare esattamente gli interi, quindi non ci sarà alcun errore di rappresentazione. (Non si ottiene un caso, ad esempio, in cui Round restituisce 4.999 ... anziché 5.)
Il più semplice è aggiungere solo 0.5f
e quindi eseguire il cast in un file int.
È possibile eseguire il cast su un valore int fornito che si è sicuri che sia nell'intervallo per un valore int (Int32.MinValue a Int32.MaxValue).
Vedere http://stackoverflow.com/questions/14/whats-the-difference-tra between-math-floor-and-math-truncate-in-net per un riepilogo completo. – paxdiablo