比如-5.12开1/3次方,结果是未定数,这到底是怎么回事啊?

解决方案 »

  1.   

    double s = pow(5.12,1/3);
    那么s=1.00000
    double s = pow(-5.12,1/3);
    那么也是s=1.00000
    所以同意楼上面的
      

  2.   

    那么怎么判断一个double是偶数呢?
      

  3.   

    double s = pow(5.12,1/3);
    那么s=1.00000
    double s = pow(-5.12,1/3);
    那么也是s=1.00000这其中第二个参数1/3是正数的除,等于0,而正负5.12的0次方当然都等于1了,应该把第二个参数写成1.0/3
    最后要提醒你:出现不定值是因为你没有
    #include "math.h"
    这时候调用的可是另外的一个函数阿,不是乘方函数阿
      

  4.   

    我写了#include <math.h>了啊?楼上说得有点道理,确实可以先转化为正数再求他的乘方,但是有一个问题,如果是负数开奇次方这样做是可以的,但是如果碰上负数开偶次方呢?正常的时候,遇到负数开偶次方,由于返回未定值,所以这点可以被跳过去,但是如果转化成正数开方再加负号的话,负数开奇次方结果是正确的,但负数开偶次方结果就是错误的了,该怎么判断第二个参数是否为偶数啊?参数都使用的double值。