Re: [VB6 ] 計算機
※ 引述《TrueFeeling (昨日之死)》之銘言:
: ※ 引述《fumizuki (小獅子)》之銘言:
: : 對的
: : 限制只能傳入字串
: : 分成兩部份,再相加,傳回,然後離開。
: Eval分成Eval(op1)和Eval(op2),但是如果op2裡面還有運算子的時候,
: 1.為什麼Eval能傳出值?
Function就是要做這用途的...
: 2.離開的話,剩下的運算子好像還沒處理
一個離開,還有其它相同的函數還在執行...
: : p 是 InStr 的第一個參數,指定要從第幾個字元開始尋找 "-",可省略這個參數不寫。
: 可是,InStr 的第一個參數,指定要從第幾個字元開始尋找
: 那個參數要有一個確定的數字的樣子,所以不懂為什麼可以用p
: 而且p也用來作為InStr函數的傳出值,所以我這邊很混亂
沒人說不能用變數啊...
函數的每一個參數本來就是個變數...
就算是常數傳進去,在函數的本體還是以變數在看待
: : 下面這串程式碼在剛才的範例我沒有說明的很清楚...
: : 這是用來分辨正負號用的
: : 在運算式中可能出現四種運算式(a+-b),(a--b),(a*-b),(a/-b)
: : 這四種運算式的共通特性都是有「負號」
: : 當「-」前方也是運算子的時候,則「-」為負號,否則就是減法運算。
: : 負號前是「+」
: : 負號前是「-」
: : 負號前是「*」
: : 負號前是「/」
: : 因為先前 p 是負號的位置,但我 SplitProc 要求的是 加減乘除 四個運算子的位置,
: : 所以要再減去 1...
: : 哪裏不懂?
: : Val() 是將 字串型態 轉換成 數值型態,得到的數值為 Double 型態的數值。
: : 如果來源 s 不是個數字的話,就會傳回零。
: : 所以 Eval = Val(s) 作用就是把 s 轉換成 Double 型態,再傳回。
: 這邊有一個問題:
: 就是如果一開始直接用Val(s)取代Eval的話,我覺得這樣應該比較直接
: 所以不懂這邊Eval的用意
上面說了,s必須是一個數值,才能夠進行轉換,否則得到的數會是零。
Eval 的目地就是要把運算子與運算元分離,Val()並不會幫你做計算的工作...
--
VB 程式設計 倉木麻衣 PTT 星爺板 行列輸入法
======================================================
Visual_Basic MaiKuraki Stephen Array
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 210.58.156.43
討論串 (同標題文章)
Visual_Basic 近期熱門文章
PTT數位生活區 即時熱門文章