Hoe naar boven afronden in c#

Ik wil altijd naar boven afronden in c#, dus bijvoorbeeld van 6.88 naar 7, van 1.02 naar 2, etc.

Hoe kan ik dat doen?


Antwoord 1, autoriteit 100%

Gebruik Math.Ceiling()

double result = Math.Ceiling(1.02);

Antwoord 2, autoriteit 18%

Gebruik Math.Ceiling:
Math.Ceiling(value)


Antwoord 3, autoriteit 4%

Als er negatieve waarden aanwezig zijn, heeft Math.Roundextra opties (in .Net Core 3 of later).

Ik heb echter een benchmark (.Net 5/release) gedaan en Math.Ceiling() is sneller en efficiënter.

Math.Round( 6.88, MidpointRounding.ToPositiveInfinity) ==> 7   (~23 clock cycles)
Math.Round(-6.88, MidpointRounding.ToPositiveInfinity) ==> -6  (~23 clock cycles)
Math.Round( 6.88, MidpointRounding.AwayFromZero)       ==> 7   (~23 clock cycles)
Math.Round(-6.88, MidpointRounding.AwayFromZero)       ==> -7  (~23 clock cycles)
Math.Ceiling( 6.88)                                    ==> 7   (~1 clock cycles)
Math.Ceiling(-6.88)                                    ==> -6  (~1 clock cycles)

Other episodes