Я использую функцию pow
в C и храню возвращаемое значение в целочисленном типе. см. фрагмент кода ниже:
for (i = 0; i < 5; i++){
val = (int)pow(5, i);
printf("%d, ", val);
}
здесь i
, и val
- целые числа, а на выходе получается 1, 5, 24, 124, 624
.
Я полагаю, что это происходит потому, что число float 25 рассматривается как 24.99999... которое округляется до 24 при присвоении целому числу.
Как я могу обойти это, если мне все еще нужно хранить возвращаемое значение в int?