Rozważmy następujący kod:C++ typ konwersji problem
#include <iostream>
using namespace std;
int aaa(int a) {
cout << a * 0.3 << endl;
return a * 0.3;
}
int main()
{
cout << aaa(35000);
}
To wypisuje:
10500
10499
Dlaczego wyjściowego różni?
Mam obejście do użycia "return a * 3/10;" ale nie podoba mi się to.
Edit:
Stwierdzili, że robi "pływak zwrotny (a * 0,3);" daje oczekiwaną wartość;
' cout << a * 0.3' używa wyniku double. ale na drugim wyjściu przekazujesz wynik z filtru typu int. – Emadpres