VB的運(yùn)算順序是:先乘除、后加減,有括號(hào)的先算括號(hào)內(nèi),有負(fù)號(hào)的先算負(fù)號(hào)。
創(chuàng)新互聯(lián)主要從事成都做網(wǎng)站、成都網(wǎng)站制作、網(wǎng)頁設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)樂都,10多年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):028-86922220
請(qǐng)你比較一下這個(gè)運(yùn)算中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)
這樣就會(huì)發(fā)現(xiàn),你的代碼中括號(hào)的位置錯(cuò)了。
正確的應(yīng)該是: Math.Sqrt((n + 1) / n - 1)
問題不是很簡單嗎?
判斷輸入的數(shù),大于等于零,則直接開方;小于零則取絕對(duì)值開方再加上字符"i",代碼我就不寫了.
沒太明白你的意思,Eval函數(shù)是利用Vbs來解析表達(dá)式,但也僅限表達(dá)式,我此前在vb.net中調(diào)用vbs的Eval函數(shù),無法識(shí)別函數(shù),只能進(jìn)行表達(dá)式識(shí)別,用replace函數(shù)取代自變量X可以實(shí)現(xiàn)普通表達(dá)式的函數(shù)表達(dá),但你所提到的問題和我說的是兩碼事,你是想通過某種方法來定義運(yùn)算符的優(yōu)先級(jí)?首先必要性不大,平方與開方本質(zhì)上就是次方的特殊形勢(shì),為什么要實(shí)現(xiàn)這個(gè)功能呢?我不太理解。據(jù)我所知你如果要定義自己的運(yùn)算符,在vb6.0中是無法直接實(shí)現(xiàn)的,就連在.net中也只能對(duì)已有的部分運(yùn)算符進(jìn)行重載,你要自定義運(yùn)算符,只能以函數(shù)的形式調(diào)用,函數(shù)調(diào)用的優(yōu)先級(jí)比運(yùn)算符要高,但是據(jù)我測(cè)試eval函數(shù)解析不了函數(shù),不知道vb6.0是否可以