Kdy a kde bych měl dát přednost ' std:: nearbyint ' over the std:: round?


Nejlepší odpověď

std :: nearbyint : Zaokrouhlí plovoucí -point argument arg na celočíselnou hodnotu ve formátu s plovoucí desetinnou čárkou pomocí aktuálního režimu zaokrouhlování .

std :: round : Vypočítá nejbližší celočíselnou hodnotu na arg (ve formátu s plovoucí desetinnou čárkou) , zaokrouhlování případů na půli cesty od nuly, bez ohledu na aktuální režim zaokrouhlování.

Takže je tu rozdíl. Pokud chcete použít jiný režim zaokrouhlování, než jaký používá std :: round, použijte std :: nearbyint (nebo std :: rint , jsou téměř totožné) .

Všimněte si, že i když zvolíte FE\_TONEAREST, bude tu rozdíl: std :: nearbyint / std :: rint zaokrouhluje případy na polovinu na sudé, zatímco std :: zaokrouhluje od nuly.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *