Access开发培训
网站公告
·Access专家课堂QQ群号:151711184    ·Access快速开发平台下载地址及教程    ·欢迎加入Access专家课堂微信群!    ·如何快速搜索本站文章|示例|资料    
您的位置: 首页 > 技术文章 > Access数据库-模块/函数/VBA

求n次方根

时 间:2019-01-08 08:33:47
作 者:伊西军   ID:63090  城市:临汾
摘 要:求一个数的n次方根
正 文:

问题描述: 

如何求一个数的n次方根?

文章来源于Access论坛帖子 http://www.accessoft.com/bbs/showtopic.asp?id=30352 西出阳关无故人 版主的回答


解决方法: 

'使用方法:开方(被开方数,次方,是否只获取平方根)   开方(4,2)    开方(4,2,False)

'如果输入的参数"次方"为奇数或者没指定参数"算术平方根",默认计算的是算术平方根

'如果输入的参数"次方"为偶数并且指定参数"算术平方根"为True,返回的是数组 数组下标为0的是正数方根 下标为1的是负数方根

Function 开方(被开方数 As Double, 次方 As Double, Optional 算术平方根 As Boolean = False)
    If 次方 Mod 2 = 0 And 被开方数 < 0 Then
        MsgBox "次方为偶数时 输入的被开方数不能为负数!", vbOKOnly, "参数错误"
        Exit Function
    End If
    If 次方 Mod 2 = 0 And 算术平方根 = True Then
        Dim arrRes(2) As Double
        arrRes(0) = 被开方数 ^ (1 / 次方)
        arrRes(1) = 0 - arrRes(0)
        开方 = arrRes
        Exit Function
    End If
    开方 = (IIf(被开方数 > 0, 被开方数, 0 - 被开方数) ^ (1 / 次方)) * (IIf(被开方数 < 0 And 次方 Mod 2 <> 0, -1, 1))
End Function


用法示例: 

Function test开方()
    '正确示例1
    MsgBox 开方(2.56, 2)
    MsgBox 开方(-8, 3)
    '正确示例2
    MsgBox 开方(2.56, 2.2, False)
    '正确示例3
    Dim arrRes As Variant
    arrRes = 开方(2.56, 2, True)
    MsgBox arrRes(0)
    MsgBox arrRes(1)
    MsgBox 开方(2.56, 2, True)(0)
    MsgBox 开方(2.56, 2, True)(1)
    '错误示例
    'MsgBox 开方(-4, 2)
    'MsgBox 开方(-4, 2, True)
    'MsgBox 开方(-4, 2, False)
End Function



Access软件网官方交流QQ群 (群号:483923997)       Access源码网店

常见问答:

技术分类:

相关资源:

专栏作家

关于我们 | 服务条款 | 在线投稿 | 友情链接 | 网站统计 | 网站帮助