十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
VB的运算顺序是:先乘除、后加减,有括号的先算括号内,有负号的先算负号。
创新互联主要从事成都做网站、成都网站制作、网页设计、企业做网站、公司建网站等业务。立足成都服务乐都,10多年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:028-86922220
请你比较一下这个运算中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",代码我就不写了.
没太明白你的意思,Eval函数是利用Vbs来解析表达式,但也仅限表达式,我此前在vb.net中调用vbs的Eval函数,无法识别函数,只能进行表达式识别,用replace函数取代自变量X可以实现普通表达式的函数表达,但你所提到的问题和我说的是两码事,你是想通过某种方法来定义运算符的优先级?首先必要性不大,平方与开方本质上就是次方的特殊形势,为什么要实现这个功能呢?我不太理解。据我所知你如果要定义自己的运算符,在vb6.0中是无法直接实现的,就连在.net中也只能对已有的部分运算符进行重载,你要自定义运算符,只能以函数的形式调用,函数调用的优先级比运算符要高,但是据我测试eval函数解析不了函数,不知道vb6.0是否可以