When I use the pow() function, sometimes the results are off by one.  For example, this code produces 124, but I know that 5³ should be 125.
#include<stdio.h>
#include<math.h>
int main(){
    int i = pow(5, 3);
    printf("%d", i);
}
Why is the result wrong?
 
     
     
     
    