Столкнулся с такой ситуацией и никак не могу понять как ее разрешить. Может поможете.
есть код:
double tmp = 36.745*100 + 0.5; // равно 3675
cout << tmp << endl; // выводит 3675
cout << static_cast<long>(tmp) << endl; // выводит 3674
Никак не могу понять, куда девается единица.
Может кто сталкивался с такой проблемой.
И что интересно, похожий код с другим числом, например, 240.875 отрабатывает нормально.