Приведение к целочисленному типу
От: da0s  
Дата: 06.11.12 10:25
Оценка:
Столкнулся с такой ситуацией и никак не могу понять как ее разрешить. Может поможете.

есть код:


double tmp = 36.745*100 + 0.5;  // равно 3675
cout << tmp << endl;            // выводит 3675
cout << static_cast<long>(tmp) << endl; // выводит 3674



Никак не могу понять, куда девается единица.
Может кто сталкивался с такой проблемой.

И что интересно, похожий код с другим числом, например, 240.875 отрабатывает нормально.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.