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é. |