Due to the representation of floating point values pow(10.0, 5)
could be 9999.9999999 or something like this. When you assign that to an integer that got truncated.
EDIT: In case of cout << pow(10.0, 5);
it looks like the output is rounded, but I don’t have any supporting document right now confirming that.
EDIT 2: The comment made by BoBTFish and this question confirms that when pow(10.0, 5)
is used directly in cout
that is getting rounded.