Kiedy i gdzie powinienem preferować ' std:: nearint ' over the std:: round?


Najlepsza odpowiedź

std :: nearint : Zaokrągla ruchomy -punktowy argument arg na wartość całkowitą w formacie zmiennoprzecinkowym, przy użyciu bieżącego trybu zaokrąglania .

std :: round : oblicza najbliższą wartość całkowitą do arg (w formacie zmiennoprzecinkowym) , zaokrąglając obserwacje w połowie drogi od zera, niezależnie od bieżącego trybu zaokrąglania.

A więc jest różnica. Jeśli chcesz użyć innego trybu zaokrąglania niż ten, którego używa std :: round, użyj std :: nearint (lub std :: rint , są one prawie identyczne) .

Zauważ, że nawet jeśli wybierzesz FE\_TONEAREST, będzie różnica: std :: nearint / std :: rint zaokrągla przypadki w połowie do parzystej, podczas gdy std :: zaokrągla od zera.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *