g ++ power函数包含在g ++编译器中

时间:2009-10-11 20:52:21

标签: c++ g++

可以使用功率函数来计算像pow(200,200)这样非常大的值的功率。 也可以用于long long int值... pow(long long int,long long int)。

我收到此错误 /sources/tested.cpp:在函数'int main()'中:

/sources/tested.cpp:16:错误:调用重载'pow(long long int&,long long int&)'是不明确的

/usr/include/bits/mathcalls.h:154:注意:候选人是:双倍(双,双)

/usr/lib/gcc/i486-linux/4.0.1 /../../../../包括/ C ++ / 4.0.1 / CMATH:360: 注意:long double std :: pow(long double,int)

/usr/lib/gcc/i486-linux/4.0.1 /../../../../ include / c ++ / 4.0.1 / cmath:356:注意:float std :: pow( float,int)

/usr/lib/gcc/i486-linux/4.0.1 /../../../../ include / c ++ / 4.0.1 / cmath:352:注意:double std :: pow( double,int) /usr/lib/gcc/i486-linux/4.0.1/../../../../include/c++/4.0.1/cmath:348:注意:long double std :: pow(long double ,长双)

/usr/lib/gcc/i486-linux/4.0.1 /../../../../ include / c ++ / 4.0.1 / cmath:344:注意:float std :: pow(漂浮,漂浮)

2 个答案:

答案 0 :(得分:4)

如果您正在寻找任意精确数学,那么您需要为它获取一个库。可能,您的平台没有足够大的数据类型本地执行此操作。查看GNU MP

答案 1 :(得分:1)

从错误消息中可以看出,没有pow函数可以处理两个long long int值。编译器会尝试自动将long long int值转换为其他值(doublelong等)。但它无法明确决定采取哪种功能。

您不能使用标准pow函数来计算非常大的数字,例如pow(200, 200),因为结果不适合pow函数所适用的任何数据类型定义 - 你会得到溢出或其他“错误”的答案。