Denne artikel er en spejling af maskinoversættelse, klik venligst her for at springe til den oprindelige artikel.

Udsigt: 1|Svar: 0

[Tips] .NET/C# bruger Math.Rounds MidpointRounding til afrunding

[Kopier link]
Opslået påFor 46 sekunder siden | | | |
Krav: Bruges ofte til afrunding og er ikke særlig følsom over for præcisionskrav.

For at opnå afrunding af to decimaler skrev udvikleren følgende kode,
Koden er meget simpel, udviklereDet faktiske resultat var 12,12, hvilket modsagde det forventede afrundingsresultat på 12,13

Årsagen til dette resultat er, at Math.Round ikke bruger afrundingsreglen som standard, men snarere runder for at gøre det lige.

Rund op til fem for at lave et par

Den såkaldte afrunding af seks til fem for at danne et par betyder, at efter at have bestemt de signifikante cifre, hvis det næste signifikante ciffer er mindre end eller lig med 4, rundes det ned; hvis det er større end eller lig med 6, afrundes med et. Når det næste signifikante ciffer er 5,

  • Hvis tallet før 5 er ulige, runde op til fem og rykke op med én
  • Hvis 5 er før et lige tal, spring 5 over (0 er lige).

Statistisk set er afrunding til lige mere præcis end at runde fem, fordi når der er mange beregninger, kan afrunding for fem til én føre til et større tal.

For eksempel:

1,15+1,25+1,35+1,45 = 5,2

Hvis de signifikante cifre er én decimalplads, opnås resultatet ved hjælp af afrundingsprincippet

1,2 + 1,3 + 1,4 + 1,5 = 5,4

Resultatet, der opnås ved at runde til fem lige tal, er

1,2 + 1,2 + 1,4 + 1,4 = 5,2

Dette viser, at afrundingsreglen giver mere præcise resultater.

Math.Round

Så hvordan bruger man Math.Round til at opnå den forventede afrunding?

Faktisk tilbyder Math.Round i C# mange overbelastningsmetoder, herunder to metoder:
Begge metoder giver en tredje parameter kaldet mode, som er en enumerationsvariabel i MidpointRounding med to valgbare værdier

  • AwayFromZero - afrunding op
  • Til lige - afrunding til lige afrunding

Så hvis vi ønsker et ideelt afrundet resultat, kan vi bruge følgende kode:
MidpointRounding-opramning, som vist nedenfor:



Henvisning:Hyperlink-login er synlig.




Tidligere:WITH (NOLOCK) optimering til høj-samtidighed EF Core-forespørgsler
Ansvarsfraskrivelse:
Al software, programmeringsmaterialer eller artikler udgivet af Code Farmer Network er kun til lærings- og forskningsformål; Ovenstående indhold må ikke bruges til kommercielle eller ulovlige formål, ellers skal brugerne bære alle konsekvenser. Oplysningerne på dette site kommer fra internettet, og ophavsretstvister har intet med dette site at gøre. Du skal slette ovenstående indhold fuldstændigt fra din computer inden for 24 timer efter download. Hvis du kan lide programmet, så understøt venligst ægte software, køb registrering og få bedre ægte tjenester. Hvis der er nogen overtrædelse, bedes du kontakte os via e-mail.

Mail To:help@itsvse.com