如何用VB编写一个函数,用来计算开平方

用VB编写一个函数,用来计算开平方,函数应该象这样:mySqr(NumasLong,nLengthasLong)asString其中,Num为被开方的整数,nLength... 用VB编写一个函数,用来计算开平方,函数应该象这样:mySqr(Num as Long,nLength as Long) as String

其中,Num为被开方的整数,nLength是要想计算得到的10进制位数,结果以字符串返回。
nLength是小数点后的位数。
说明:nLength一般很大,不过不会超过10000
举个例子:
mySqr(2,100)=1.414213562373095048801688724209698078569671875376948073176679737990732478462107038850387534327641573
我一旦有分就会提高悬赏的!
对答对者如果有需要我还可以奉上一个用一个函数算圆周率到万位的代码。
展开
 我来答
ljazxxybbx
2008-07-01 · 超过25用户采纳过TA的回答
知道答主
回答量:76
采纳率:0%
帮助的人:63万
展开全部
要用程序来开平方,首先你最起码要知道经过自己推导出来的公司,其次再是求精度,你说的nLength是要得到的10进制位数,这个不能给你保证,你得用一个小数位数来表达精度。假如你开一个非常大的数,你的整数部分就可能超过10位,更不要谈精度
方法是这样的:
x表示我要开的数,y表示结果,z是和开方后比较接近的数
y=z+(x-x^2)/2*z
也许你还不太明白,具体举例来说明>>
sqr(x)代表开x,即根号x,这个符号不太好打
假如我开5,即求根号5的值
5比4大sqr(4)=2,sqr(9)=3,9比5大,即4<5<9,所以2<sqr(5)<3,我们任取这个范围的一个数,就取2.5,z=2.5
y=2.5+(5-2.5^2)/2.5*2=2.25
此时比较接近结果的值是2.25,即z=2.25
y=2.25+(5-2.25^2)/2.25*2=2.2361112
比较接近了,想要再精确,就再次循环

通过上面的举例,相信你已经发现了用循环来求精度
具体该怎么做,相信你已经知道了
lxz1969
2008-07-01 · TA获得超过1.1万个赞
知道大有可为答主
回答量:8524
采纳率:33%
帮助的人:1.1亿
展开全部
没问题,我自编的开方程序可以满足你的需求。用我的程序求的结果是:1.4142135623730950488016887242096980785696718753769480731766797379907324784621070388503875343276415727,比你的结果还多精确一位。不过我的是程序,不是函数。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ickaka
2008-07-01 · TA获得超过323个赞
知道小有建树答主
回答量:358
采纳率:0%
帮助的人:0
展开全部
Private Function mySqr(ByVal Num As Long, ByVal nLength As Long) As String
mySqr = Num ^ (1 / nLength)
End Function
Private Sub Command1_Click()
MsgBox mySqr(9, 2)
MsgBox mySqr(27, 3)
MsgBox mySqr(81, 4)
End Sub

VB的开2次方函数是SQR()。其他次开方可以使用指数函数Exp得到,如要计算x的开3次方:Exp(Log(x)/3)。
Private Function mySqr(ByVal Num As Long, ByVal nLength As Long) As String
mySqr = Exp(Log(Num) / nLength)
End Function

理解错误,等后来人答
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
dl_会飞的青蛙
2008-07-01 · TA获得超过2456个赞
知道大有可为答主
回答量:3294
采纳率:0%
帮助的人:3346万
展开全部
他的意思应该就是自己写一个这样的函数!~

Private Function mySqr(ByVal Num As Long, ByVal nLength As Long) As String
Dim i As Integer = 0
Dim dTemp As Double = 0

For i = 1 To nLength - 1
If i = 1 Then
dTemp = Num * Num
Else
dTemp = dTemp * Num
End If
Next

mySqr = dTemp
End Function
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
discovery522
推荐于2016-07-16 · TA获得超过4714个赞
知道大有可为答主
回答量:2308
采纳率:71%
帮助的人:1493万
展开全部
代码如下:

Private Function mySqr(ByVal Num As Long, ByVal nLength As Long) As String
Dim i As Integer = 0
Dim dTemp As Double = 0
For i = 1 To nLength - 1
If i = 1 Then
dTemp = Num * Num
Else
dTemp = dTemp * Num
End If
Next
mySqr = dTemp
End Function
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(9)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式