在对浮点数执行平方和平方根时:表达式必须具有整数或无作用域枚举类型
Posted
技术标签:
【中文标题】在对浮点数执行平方和平方根时:表达式必须具有整数或无作用域枚举类型【英文标题】:While performing squaring and square roots on floats: expression must have integral or unscoped enum type 【发布时间】:2015-02-06 00:18:27 【问题描述】:我正在尝试对浮点数进行平方和平方根,但出现错误:表达式必须具有整数或无范围枚举类型 这意味着什么?我该如何解决?
这是我正在使用的代码:
#include <math.h>
int main()
float X = 5.f;
float Thing = X ^ 2;
float Thing2 = sqrtf(X ^ 2);
return 0;
【问题讨论】:
【参考方案1】:^
不是幂运算符,它是 XOR 运算符。
C++ 没有幂运算符,但是因为平方相当于乘以自己,所以几乎总是以这种方式实现。
#include <math.h>
int main()
float X = 5.f;
float Thing = X * X;
float Thing2 = sqrtf(X * X); //Or Thing instead of X * X
return 0;
在<math.h>
中确实存在一个pow
运算符,但这不是做平方的标准方法,因为它必须有额外的逻辑才能允许功率在运行时变化。
【讨论】:
以上是关于在对浮点数执行平方和平方根时:表达式必须具有整数或无作用域枚举类型的主要内容,如果未能解决你的问题,请参考以下文章
python使用numpy的np.power函数计算numpy数组中每个数值的指定幂次(例如平方立方)np.power函数默认返回整数格式np.float_power函数默认返回浮点数