Dlaczego moja matematyka całkowita ze std :: pow podaje błędną odpowiedź?

Rozważ następujący fragment kodu:

#include <iostream>
#include <cmath>

int main() {
    int i = 23;
    int j = 1;
    int base = 10;
    int k = 2;
    i += j * pow(base, k);
    std::cout << i << std::endl;
}

Wyprowadza „122” zamiast „123”. Czy jest to błąd w g ++ 4.7.2 (MinGW, Windows XP)?

questionAnswers(5)

yourAnswerToTheQuestion