Denna artikel är en spegelartikel om maskinöversättning, klicka här för att hoppa till originalartikeln.

Utsikt: 1|Svar: 0

[Tips] .NET/C# använder Math.Rounds MidpointRounding för avrundning

[Kopiera länk]
Publicerad på46 sekunder sedan | | | |
Krav: Används ofta för avrundning och är inte särskilt känslig för precisionskrav.

För att avrunda två decimaler skrev utvecklaren följande kod,
Koden är väldigt enkel, utvecklareDet faktiska resultatet var 12,12, vilket motsade det förväntade avrundningsresultatet på 12,13

Anledningen till detta resultat är att Math.Round inte använder avrundningsregeln som standard, utan istället rundor för att göra jämnt.

Runda upp till fem för att bilda ett par

Den så kallade avrundningen av sex till fem för att bilda ett par innebär att efter att de signifikanta siffrorna bestämts, om nästa signifikanta siffra är mindre än eller lika med 4, avrundas den nedåt; om den är större än eller lika med 6, avrundas med ett. När nästa signifikanta siffra är 5,

  • Om siffran före 5 är udda, runda upp fem och flytta fram med ett
  • Om 5 är före ett jämnt tal, hoppa över 5 (0 är jämnt).

Statistiskt sett är avrundning jämnt mer exakt än att avrunda fem, eftersom när det finns många beräkningar kan avrundning var femte till ett leda till ett större tal.

Till exempel:

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

Om de signifikanta siffrorna är en decimal erhålls resultatet med avrundningsprincipen

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

Resultatet som erhålls genom att avrunda till fem jämna talor är

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

Detta visar att avrundningsregeln ger mer precisa resultat.

Math.Round

Så hur använder du Math.Round för att uppnå den förväntade avrundningen?

Faktum är att Math.Round i C# erbjuder många överbelastningsmetoder, inklusive två metoder:
Båda metoderna ger en tredje parameter kallad mode, som är en uppräkningsvariabel i MidpointRounding med två valbara värden

  • AwayFromZero – avrundar
  • Till jämn – avrundning till jämn avrundning

Så om vi vill ha ett idealt avrundat resultat kan vi använda följande kod:
Mittpunktavrundning, som visas nedan:



Hänvisning:Inloggningen med hyperlänken är synlig.




Föregående:WITH (NOLOCK)-optimering för EF Core-frågor med hög samtidighet
Friskrivning:
All programvara, programmeringsmaterial eller artiklar som publiceras av Code Farmer Network är endast för lärande- och forskningsändamål; Ovanstående innehåll får inte användas för kommersiella eller olagliga ändamål, annars kommer användarna att bära alla konsekvenser. Informationen på denna sida kommer från internet, och upphovsrättstvister har inget med denna sida att göra. Du måste helt radera ovanstående innehåll från din dator inom 24 timmar efter nedladdning. Om du gillar programmet, vänligen stöd äkta programvara, köp registrering och få bättre äkta tjänster. Om det finns något intrång, vänligen kontakta oss via e-post.

Mail To:help@itsvse.com