While doing my homework I noticed something really strange that I just can't figure out why.
int x = 5;
cout << pow(x, 2);
The result is 25. That's fine. But if I write the same program like this:
int x = 5;
int y = pow(x, 2);
cout << y;
The result is 24!
When x is 2, 3, 4, 6, 7, 8 no problem, but with 5, 10, 11, 13 etc. result is 1 lower than it should be.
Same thing with if().
for (int x = 1; x <= 20 ; x++) {
if (x * x == pow(x, 2))
cout << x << endl;
}
It prints out numbers 1, 2, 3, 4, 6, 8, 12, 16.
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…