Romeo писал(а):Absurd, это нужно в милионе случаев. Например при работе с графикой, когда нужно значение коррдинаты, которое хранится в double, округлить к целому, ведь точки на экране дискретные.
Ага, именно. Конечно, в таком случае "округление" до целой части вместо округления по математическим правилам не приведет к каким-то фатальным последствиям, но, как говорится, на душе будет теплее, если получится чуть точнее
BBB, воспользуйся формулой (long)(dSomeDouble + 0.5) - будет работать анологично паскалевскому round.
Спасибо. Я как-то в этом направлении и стал рассуждать.
Но все равно удивительно, что в C нет такой, казалось бы, базовой арифметической функции.
Absurd писал(а):Для графики совершенно монопенисуально - будешь ли ты отбрасывать дробную часть или делать "математически корректно" - результат будет один и тот же поскольку пикселя бывают только целые.
Странный вывод. Именно потому, что "пикселя бывают только целые" результат отброса дробной части и "округления математически корректно" в статистически половине случаев будет отличаться друг от друга на единицу. Может, как писал выше в этом сообщении, это и не приведет фатальным последствиям, но приятнее чувствовать, что ты получил чуть более точный результат.