c++ - 来自 math.h 库的 pow() - 如何使用函数应用

标签 c++ pow math.h

所以我正在编写一些代码,需要将函数的返回值提高到某个幂。我最近发现使用 '^' 运算符进行求幂是没有用的,因为在 C++ 中它实际上是一个 XOR 运算符或类似的东西。现在这是我要编写的代码:

int answer = pow(base, raisingTo(power));


现在谁能告诉我这是否正确?我会解释代码。正如你们都知道的那样,我已经声明了一个 int 变量 answer,并将其初始化为任何名为“base”的变量的值,提升为作用于任何其他名为“power”的变量的 raisingTo() 函数的返回值。当我这样做时(并且我在 Visual C++ 2010 Express Edition 中编辑和编译我的代码),红色破折号出现在“pow”一词下方,并出现一条错误消息:“多个重载函数的实例‘pow’与参数匹配list"

有人可以帮我解决这个问题吗?你们能不能也给我解释一下整个 pow() 函数是如何工作的,因为坦率地说,www.cplusplus.com 的引用资料有点令人困惑,因为我仍然只是一个初学者!

最佳答案

documentation已经非常明确地说明了这一点:

The pow(int, int) overload is no longer available. If you use this overload, the compiler may emit C2668 [EDIT: That's the error you get]. To avoid this problem, cast the first parameter to double, float, or long double.

此外,要计算basepower,您只需编写

pow(base, power)

还有上面的提示:

int result = (int) pow((double)base, power);

关于c++ - 来自 math.h 库的 pow() - 如何使用函数应用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9344983/

相关文章:

php - 为什么 PHP 浮点除法和 POW 会给出错误的结果和意想不到的结果?

java - Java Biginteger 在 pow 中的最大值

c++ - Sinf - 它存在于 C++ 中吗?

c - log(10.0) 可以编译但 log(0.0) 不能使用 undefined reference ?

c - 为什么我的代码返回的数字低于应返回的数字?

c++ - 如何断言一个值是否在枚举范围内

c++ - 如何声明一个带有成员函数指针的函数

c# - 将字符串数组从 C# 应用程序传递到 C++ DLL

c++ - 将 boost cpp_int 用于 pow() 和 rand() 等函数

c++ - 了解 union 的内存内容