m   a   as   double       '需要计算的数字 
dim   b   as   double     '几次方或开几次方 
dim   c   as   double     '结果 '计算 
c=sgn(a)   *   (abs(a)   ^   b   ) 
自己找到答案了,但是不知道为什么负值的变量不能开立方

解决方案 »

  1.   

    Private Sub Command1_Click()
        Dim a As Long
        a = 27
        If a < 0 Then
            Print -1 * Abs(a) ^ (1 / 3)
        Else
            Print a ^ (1 / 3)
        End If
    End Sub
      

  2.   


    print sgn(a)*(abs(a))^(1/3)
      

  3.   


    print -1^(1/3)等效于
    print -(1^(1/3))
      

  4.   

    msdn:只有指数为整数时,底数才能为负数;
    原因可能与他的开方算法有关