重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
VB的运算顺序是:先乘除、后加减,有括号的先算括号内,有负号的先算负号。
为头屯河等地区用户提供了全套网页设计制作服务,及头屯河网站建设行业解决方案。主营业务为网站设计、网站建设、头屯河网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!
请你比较一下这个运算中x和y的值:
Dim n As Single = 4
Dim x As Single
Dim y As Single
x = n + 1
x = x / n
x = x - 1
x = Math.Sqrt(x)
y = Math.Sqrt((n + 1) / n - 1)
这样就会发现,你的代码中括号的位置错了。
正确的应该是: Math.Sqrt((n + 1) / n - 1)
问题不是很简单吗?
判断输入的数,大于等于零,则直接开方;小于零则取绝对值开方再加上字符"i",代码我就不写了.
有现成函数sqr(100)返回10
如果是任意次开方可以自己做一个函数,先做一个连乘的乘方函数,再做一个开任意次方。因为开方就是不断的用连乘来试验的,如下
'定义连乘函数,或者叫乘方Private Function lc(number, n As Integer)Dim myresultmyresult = 1Dim i As IntegerFor i = 1 To n myresult = myresult * numberNextlc = myresultEnd Function
12345678910111213141516171819202122 '开任意次方Private Function Power(number As Double, n As Integer)Dim j As DoubleDim myresult As Doublemyresult = 0.0000001For j = p To number Step 0.00001 Dim myNum As Double myNum = lc(j, n) If myNum = number Then myresult = j Else Exit For End IfNextPower = myresultIf lc(Int(Power) + 1, n) = number ThenPower = Int(Power) + 1ElsePower = myresultEnd IfEnd Function
调用示范:
MsgBox Power(28, 3)
private
sub
form_click()
dim
intflag
as
integer
dim
strnumber
as
string
dim
strmsg
as
string
strnumber
=
inputbox("输入一个数")
msg$
=
"输入的数是:"
+
strnumber
+
chr$(13)
+
chr(10)
+
"确认是否正确"
intflag
=
msgbox(msg$,
36)
if
intflag
=
6
then
"sqr(";
strnumber;
")=";
sqr(val(strnumber))
else
"取消操作"
end
if
end
sub
private
sub
form_load()
autoredraw
=
true
"计算一个数的平方根"
"单击窗体开始"
end
sub
把你定义的函数中的这句
squareroot
=
Sqr(n)
改成
squareroot
=
Sqr(x)
变量用错了。呵呵
在VB6中,没有名为Sqrt()函数或子过程;只有Math.Sqr(...)函数!
函数 Math.Sqr(x)求一个数x的平方根。这个函数中
x≥0
所得结果(根)为Double类型
举例如下:
Dim root As Double
root = Math.Sqr(10)
MsgBox "10的平方根为:" + CStr(root)
如果试图求一个负数的平方根引发错误: