Рассмотрим следующий код:
#include <iostream>
using namespace std;
int aaa(int a) {
cout << a * 0.3 << endl;
return a * 0.3;
}
int main()
{
cout << aaa(35000);
}
Он печатает:
10500
10499
Почему вывод отличается?
У меня есть обходное решение для использования "return a * 3/10;" но мне это не нравится.
Edit:
Обнаружено, что выполнение "return float (a * 0.3)"; дает ожидаемое значение;