See artikkel on masintõlke peegelartikkel, palun klõpsake siia, et hüpata algse artikli juurde.

Vaade: 1|Vastuse: 0

[Nõuanded] .NET/C# kasutab ümardamiseks Math.Roundi MidpointRounding'i

[Kopeeri link]
Postitatud46 sekundit tagasi | | | |
Nõuded: Sageli kasutatakse ümardamiseks ja ei ole täpsusnõuete suhtes väga tundlik.

Kahe kümnendkoha ümardamiseks kirjutas arendaja järgmise koodi,
Kood on väga lihtne, arendajadTegelik tulemus oli 12,12, mis oli vastuolus oodatud ümardamise tulemusega 12,13

Selle tulemuse põhjuseks on see, et Math.Round ei kasuta vaikimisi ümardamisreeglit, vaid hoopis voorusid, et saada paaris.

Ümarda viieni, et saada paar

Niinimetatud kuue kuni viie ümardamine paari moodustamiseks tähendab, et pärast oluliste numbrite määramist, kui järgmine oluline number on väiksem või võrdne 4-ga, ümardatakse see alla; kui see on suurem või võrdne 6-ga, ümardatakse see ühe võrra. Kui järgmine oluline number on 5,

  • Kui number enne 5 on paaritu, ümardage viis üles ja liigume ühe võrra edasi
  • Kui 5 on paarisarvu ees, jäta 5 vahele (0 on paaris).

Statistiliselt on ümardamine paarispunkti täpsem kui viie ümardamine, sest kui arvutusi on palju, võib iga viie ühe ühe ümardamine anda suurema arvu.

Näiteks:

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

Kui olulised numbrid on üks kümnendkoma, saadakse tulemus ümardamisprintsiibi abil

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

Tulemus, mis saadakse, ümardades viie paarisarvuni, on

1.2 + 1.2 + 1.4 + 1.4 = 5.2

See näitab, et ümardusreegel annab täpsemaid tulemusi.

Math.Round

Kuidas siis kasutada Math.Roundi, et saavutada oodatud ümardus?

Tegelikult pakub Math.Round C#-s palju ülekoormuse meetodeid, sealhulgas kahte meetodit:
Mõlemad meetodid pakuvad kolmandat parameetrit, mida nimetatakse režiimiks, mis on MidpointRounding'i loendusmuutuja kahe valitava väärtusega

  • AwayFromZero – ümardamine üles
  • ToEven – ümardamine ühtlaseks

Kui soovime ideaalset ümardatud tulemust, saame kasutada järgmist koodi:
MidpointRounding loendamine, nagu allpool näidatud:



Viide:Hüperlingi sisselogimine on nähtav.




Eelmine:WITH (NOLOCK) optimeerimine kõrge samaaegse EF Core päringute jaoks
Disclaimer:
Kõik Code Farmer Networki poolt avaldatud tarkvara, programmeerimismaterjalid või artiklid on mõeldud ainult õppimiseks ja uurimistööks; Ülaltoodud sisu ei tohi kasutada ärilistel ega ebaseaduslikel eesmärkidel, vastasel juhul kannavad kasutajad kõik tagajärjed. Selle saidi info pärineb internetist ning autoriõiguste vaidlused ei ole selle saidiga seotud. Ülaltoodud sisu tuleb oma arvutist täielikult kustutada 24 tunni jooksul pärast allalaadimist. Kui sulle programm meeldib, palun toeta originaaltarkvara, osta registreerimist ja saa paremaid ehtsaid teenuseid. Kui esineb rikkumist, palun võtke meiega ühendust e-posti teel.

Mail To:help@itsvse.com