如何用12的幂提高双倍值?

时间:2009-11-29 17:03:50

标签: c objective-c math

我有一个双倍的:

double mydouble = 10;

我要10 ^ 12,所以10 * 10 * 10 * 10 * 10 * 10 * 10 * 10 * 10 * 10 * 10 * 10.我试过

double newDouble = pow(10, 12);

并在NSLog中返回我:pow=-1.991886

没有多大意义......我认为鲍勃不是我的朋友吗?

5 个答案:

答案 0 :(得分:12)

尝试pow(10.0,12.0)。更好的是,#include math.h

澄清:如果不包含math.h,编译器会假定pow()返回一个整数。包括math.h会带来像

这样的原型
double pow(double, double);

因此编译器可以理解如何处理参数和返回值。

答案 1 :(得分:5)

如果没有:

,我甚至无法编译程序
#include <math.h>

当使用这样的数学函数时,你应该总是包含math.h并确保你正在调用正确的pow函数。谁知道其他战功能可能是什么......它可以代表“动力车”哈哈

答案 2 :(得分:4)

以下是如何使用最少的乘法数计算x ^ 12。

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

该方法来自Knuth的Seminumerical Algorithms,第4.6.3节。

答案 3 :(得分:0)

这是pow的正确语法,你传递给NSLog(...)的格式字符串是什么?

答案 4 :(得分:0)

你是否尝试投射到双倍:

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