Eisen: Vaak gebruikt voor afronding en niet erg gevoelig voor precisie-eisen.
Om twee decimalen af te ronden, schreef de ontwikkelaar de volgende code,
De code is heel eenvoudig, ontwikkelaarsHet werkelijke resultaat was 12,12, wat in tegenspraak was met het verwachte afrondingsresultaat van 12,13。
De reden voor dit resultaat is dat Math.Round standaard niet de afrondingsregel gebruikt, maar rondes om even te maken.
Rond op vijf om een paar te maken
De zogenaamde afronding van zes naar vijf om een paar te vormen betekent dat na het bepalen van de significante cijfers, als het volgende significante cijfer kleiner is dan of gelijk aan 4, het naar beneden wordt afgerond; als het groter is dan of gelijk aan 6, rond je af met één. Wanneer het volgende significante cijfer 5 is,
- Als het getal vóór 5 oneven is, rond dan vijf af en ga met één naar voren
- Als 5 vóór een even getal staat, sla dan 5 over (0 is even).
Statistisch gezien is afronden naar even nauwkeuriger dan afronden van vijf, omdat bij veel berekeningen afronden om elke vijf op één tot een groter getal kan leiden.
Bijvoorbeeld:
1.15+1.25+1.35+1.45 = 5.2
Als de significante cijfers één decimale plaats zijn, wordt het resultaat verkregen met behulp van het afrondingsprincipe
1,2 + 1,3 + 1,4 + 1,5 = 5,4
Het resultaat dat wordt verkregen door het afronden op vijf even punten is
1,2 + 1,2 + 1,4 + 1,4 = 5,2
Dit toont aan dat de afrondingsregel preciezere resultaten oplevert.
Wiskunde.Ronde
Hoe gebruik je Math.Round om de verwachte afronding te bereiken?
Math.Round in C# biedt namelijk veel overbelastingsmethoden, waaronder twee methoden:
Beide methoden bieden een derde parameter genaamd modus, een enumeratievariabele van MidpointRounding met twee selecteerbare waarden
- AwayFromZero - afronden
- Tot Gelijk - afronden naar even afronden
Dus als we een ideaal afgerond resultaat willen, kunnen we de volgende code gebruiken:
MidpointRounding-enumeratie, zoals hieronder weergegeven:
Referentie:De hyperlink-login is zichtbaar. |