Tento článok je zrkadlovým článkom o strojovom preklade, kliknite sem pre prechod na pôvodný článok.

Pohľad: 1|Odpoveď: 0

[Tipy] .NET/C# používa MidpointRounding od Math.Round na zaokrúhľovanie

[Kopírovať odkaz]
Zverejnenépred 46 sekundami | | | |
Požiadavky: Často sa používa na zaokrúhľovanie a nie je veľmi citlivý na požiadavky na presnosť.

Aby sa dosiahlo zaokrúhľovanie o dve desatinné miesta, vývojár napísal nasledujúci kód,
Kód je veľmi jednoduchý, vývojáriSkutočný výsledok bol 12,12, čo bolo v rozpore s očakávaným zaokrúhľovacím výsledkom 12,13

Dôvodom tohto výsledku je, že Math.Round štandardne nepoužíva pravidlo zaokrúhľovania, ale skôr kolá na párnosť.

Zaokrúhlite na päť, aby ste vytvorili pár

Takzvané zaokrúhľovanie zo šesť na päť na vytvorenie páru znamená, že po určení významných číslic, ak je ďalšia významná číslica menšia alebo rovná 4, zaokrúhľuje sa nadol; ak je väčšia alebo rovná 6, zaokrúhľuje sa nahor o jeden. Keď je ďalšia významná číslica 5,

  • Ak je číslo pred päťkou nepárne, zaokrúhlite päť a posuňte sa o jeden
  • Ak je 5 pred párnym číslom, preskočte 5 (0 je párne).

Štatisticky je zaokrúhľovanie na párne presnejšie ako zaokrúhľovanie päť, pretože pri mnohých výpočtoch môže zaokrúhľovanie každých päť na jeden viesť k väčšiemu číslu.

Napríklad:

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

Ak sú významné číslice jedno desatinné miesto, výsledok sa získa pomocou princípu zaokrúhľovania

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

Výsledok získaný zaokrúhľovaním na päť párnych je

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

To ukazuje, že pravidlo zaokrúhľovania prináša presnejšie výsledky.

Math.Round

Ako teda použiť Math.Round na dosiahnutie očakávaného zaokrúhľovania?

V skutočnosti Math.Round v C# poskytuje mnoho metód preťaženia, vrátane dvoch:
Obe metódy poskytujú tretí parameter nazývaný mode, ktorý je enumeračnou premennou MidpointRounding s dvoma voliteľnými hodnotami

  • AwayFromZero - zaokrúhľovanie nahor
  • ToEven – zaokrúhľovanie na párne zaokrúhľovanie

Ak chceme ideálny zaokrúhlený výsledok, môžeme použiť nasledujúci kód:
Výpočet stredného bodu Zaokrúhľovaním, ako je uvedené nižšie:



Referencia:Prihlásenie na hypertextový odkaz je viditeľné.




Predchádzajúci:Optimalizácia WITH (NOLOCK) pre EF Core dotazy s vysokou súbežnosťou
Vyhlásenie:
Všetok softvér, programovacie materiály alebo články publikované spoločnosťou Code Farmer Network slúžia len na vzdelávacie a výskumné účely; Vyššie uvedený obsah nesmie byť použitý na komerčné alebo nezákonné účely, inak nesú všetky následky používateľmi. Informácie na tejto stránke pochádzajú z internetu a spory o autorské práva s touto stránkou nesúvisia. Musíte úplne vymazať vyššie uvedený obsah zo svojho počítača do 24 hodín od stiahnutia. Ak sa vám program páči, podporte originálny softvér, zakúpte si registráciu a získajte lepšie originálne služby. Ak dôjde k akémukoľvek porušeniu, kontaktujte nás prosím e-mailom.

Mail To:help@itsvse.com