declare @a numeric
select @a=power(216,1.0/3.0)
select @a试了一下,结果不是6,而是5,不知为什么?

解决方案 »

  1.   

    declare @a numeric
    select @a=power(216.0,1.0/3.0)
    select @a这样就可以了!
      

  2.   

    power函数好像支持不好分数或者小数的幂,但是power(25,0.5)是对的,而power(27,1.0/3.0)就不对了,奇怪~~关注
      

  3.   

    没有直接的函数。可以间接计算
    case when  变量>0
    exp(log(变量))
    when 变量=0
    0
    when变量<0
    -exp(log(变量))
      

  4.   

    抱歉各位,偶已经结帖了,下次有机会再给各位加分吧。to klan,
    引自SQL联机手册:POWER 函数返回所给数字表达式值的指定次幂的值。POWER(2,3) 返回 2 的 3 次幂,即 8。可以指定负数幂次,所以 POWER(2.000, -3) 返回 0.125。请注意,POWER(2, -3) 的结果是 0,这是因为返回的结果与所给数字表达式的数据类型相同。因此,如果结果有三位小数,则计算其所给幂次的数字必须也有三位小数。