Я понимаю, что это обычная проблема. Однако я не могу найти правильный прямой ответ.Почему printf не использует научную нотацию?
16^54 = 1.0531229167e+65 (this is the result I want)
Когда я использую pow(16,54)
, я получаю:
105312291668557186697918027683670432318895095400549111254310977536,0
код выглядит следующим образом:
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
void main(){
double public;
double a = 16;
double b = 54;
public = (pow(a,b));
printf("%.21f\n", public);
}
Код, выполняемый с:
НКУ main.c -lm
Что я делаю неправильно?
Значит, вам нужны научные обозначения? –
Также читайте о спецификаторе формата 'g'. –