Hi, I have a question regarding the conversion of double to int. Considering this little program: #include <iostream> using namespace std; int main() { double a = 50.0; double b = 48.7; double c = a - b; cout << c << endl; cout << c * 10 << endl; cout << static_cast<int>(c * 10) << endl; return 0; } I get this result: 1.3 13 12 <--- why not 13? 1) I am aware I may touch here the problem of floating point representation and that the 1.3 value - result of a subtraction - is not exactly this one, but maybe 1.2999999... Is this the reason why the int conversion transforms the "double" 13 into a "int" equal to 12 ? 2) How to avoid this problem ? I'd like to be sure to round this number correctly (with a precision of 1/10th, 1/100th, etc...). I have tried to find relevant information regarding this issue but did not find a clear answer, Many thanks in advance, Eric