Comment élever une double valeur par puissance de 12?

J’ai un double qui est:

double mydouble = 10; 

et je veux 10 ^ 12, donc 10 * 10 * 10 * 10 * 10 * 10 * 10 * 10 * 10 * 10 * 10 * 10. J’ai essayé

 double newDouble = pow(10, 12); 

et il me retourne dans NSLog: pow=-1.991886

n’a pas beaucoup de sens … Je pense que pow n’est pas mon ami, n’est-ce pas?

essayez pow (10.0, 12.0). Mieux encore, #include math.h

Pour clarifier: si vous n’incluez pas math.h , le compilateur suppose que pow() renvoie un entier. Y compris math.h apporte un prototype comme

 double pow(double, double); 

Le compilateur peut donc comprendre comment traiter les arguments et la valeur de retour.

Je n’aurais même pas pu comstackr le programme sans:

 #include  

Lorsque vous utilisez des fonctions mathématiques telles que celle-ci, vous devez TOUJOURS inclure math.h et vous assurer que vous appelez la fonction Pow appropriée. Qui sait ce que l’autre fonction de pow pourrait être… elle pourrait signifier «roues mosortingces» haha

Voici comment calculer x ^ 12 avec le plus petit nombre de multiplications.

 y = x*x*x; y *= y; y *= y; 

La méthode provient de Knuth’s Seminumerical Algorithms , section 4.6.3.

C’est la bonne syntaxe pour pow, quelle chaîne de format transmettez-vous à NSLog (…)?

as-tu essayé de faire un double?

 NSLog(@"(double)pow(10, 12) = %lf", (double)pow(10, 12));