Похоже, что Pow () один из здесь

Какие'здесь происходит:

#include 
#include 
int main(void) {
    printf("17^12 = %lf\n", pow(17, 12));
    printf("17^13 = %lf\n", pow(17, 13));
    printf("17^14 = %lf\n", pow(17, 14));
}

Я получаю этот вывод:

17^12 = 582622237229761.000000
17^13 = 9904578032905936.000000
17^14 = 168377826559400928.000000

13 и 14 не совпадают сВольфрам Альпа сравни:

12: 582622237229761.000000
    582622237229761

13: 9904578032905936.000000
    9904578032905937

14: 168377826559400928.000000
    168377826559400929

Более того, этоне ошибается какой-то странной долей - этоне прав точно!

Если это до меня доходит до предела того, чтоpow() может сделать для меня, есть ли альтернатива, которая может рассчитать это? Мне нужна функция, которая может рассчитатьx^y, гдеx^y всегда меньше, чем ULLONG_MAX.

Ответы на вопрос(4)

Ваш ответ на вопрос