如何用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
我一旦有分就会提高悬赏的!
对答对者如果有需要我还可以奉上一个用一个函数算圆周率到万位的代码。 展开
其中,Num为被开方的整数,nLength是要想计算得到的10进制位数,结果以字符串返回。
nLength是小数点后的位数。
说明:nLength一般很大,不过不会超过10000
举个例子:
mySqr(2,100)=1.414213562373095048801688724209698078569671875376948073176679737990732478462107038850387534327641573
我一旦有分就会提高悬赏的!
对答对者如果有需要我还可以奉上一个用一个函数算圆周率到万位的代码。 展开
11个回答
展开全部
要用程序来开平方,首先你最起码要知道经过自己推导出来的公司,其次再是求精度,你说的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
比较接近了,想要再精确,就再次循环
通过上面的举例,相信你已经发现了用循环来求精度
具体该怎么做,相信你已经知道了
方法是这样的:
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
比较接近了,想要再精确,就再次循环
通过上面的举例,相信你已经发现了用循环来求精度
具体该怎么做,相信你已经知道了
展开全部
没问题,我自编的开方程序可以满足你的需求。用我的程序求的结果是:1.4142135623730950488016887242096980785696718753769480731766797379907324784621070388503875343276415727,比你的结果还多精确一位。不过我的是程序,不是函数。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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
理解错误,等后来人答
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
理解错误,等后来人答
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
他的意思应该就是自己写一个这样的函数!~
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
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
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
代码如下:
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
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
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询