возвращаемое значение pow() округляется вниз, если присваивается целому числу

Я использую функцию 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?

6
задан xanatos 29 October 2011 в 07:39
поделиться