Dit artikel is een spiegelartikel van machinevertaling, klik hier om naar het oorspronkelijke artikel te gaan.

Bekijken: 1|Antwoord: 0

[Tips] .NET/C# gebruikt Math.Round's MidpointRounding voor afronding

[Link kopiëren]
Geplaatst op46 seconden geleden | | | |
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.




Vorig:MET (NOLOCK) optimalisatie voor EF Core-queries met hoge gelijktijdigheid
Disclaimer:
Alle software, programmeermaterialen of artikelen die door Code Farmer Network worden gepubliceerd, zijn uitsluitend bedoeld voor leer- en onderzoeksdoeleinden; De bovenstaande inhoud mag niet worden gebruikt voor commerciële of illegale doeleinden, anders dragen gebruikers alle gevolgen. De informatie op deze site komt van het internet, en auteursrechtconflicten hebben niets met deze site te maken. Je moet bovenstaande inhoud volledig van je computer verwijderen binnen 24 uur na het downloaden. Als je het programma leuk vindt, steun dan de echte software, koop registratie en krijg betere echte diensten. Als er sprake is van een inbreuk, neem dan contact met ons op via e-mail.

Mail To:help@itsvse.com