作者evil2004 (忘卻深淵)
看板Visual_Basic
標題Re: [.NET] 讀值後運算
時間Fri Apr 22 12:03:29 2016
※ 引述《foreverwhat (奇)》之銘言:
: 不好意思
: 還是不知道該怎麼寫
: 像我現在的程式 簡單先寫看儀器讀出來的值
: console.write(aaa)
: 這邊看到的值是 1,+1.55121667E-006
: 但是我想把它寫成跟儀器端上看到的 1551.2167nm
: 那我嘗試寫成
: buf = Split(aaa,",")
: a = Convert.ToString(buf)
: console.write(a)
: 看到的值就會變成 System.String[]
: 還是不知道要怎麼單把 +1.55121667E-006拉出來計算
: 再麻煩各位前輩指點指點 謝謝
我真的看不是很懂科學記號的表示法,
所以該乘幾個0, 和E後面的正負號數字你自己考慮!
假設
Dim aaa As String = "1,+1.55121667E-006"
Dim Value, Tmp As String
buf = Split(aaa, ",") 'buf(0) = "1" buf(1) = "+1.55121667E-006"
Value = CDbl(Split(buf(1), "E")(0)) 'Value = 1.55121667
Tmp = CInt(Split(buf(1), "E")(1)) 'Tmp = -6
剩下就是考慮Tmp
看要把Value乘除幾個10即可
沒Run過, 不知道能不能過 你自己試試
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 60.251.121.196
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Visual_Basic/M.1461297812.A.92E.html
1F:推 foreverwhat: 感謝e大 大致可以了 我再稍微修改一下 謝謝!!! 04/22 13:23
2F:推 foreverwhat: 之前buf=split完就一直想拿split來用 04/22 13:25
3F:→ foreverwhat: 原來是想錯方向了 04/22 13:26
剛剛想了一下
Dim Value, Tmp As String 改成下面這兩行比較好
Dim Value As Double
Dim Tmp As Integer
這樣後面運算時可以省掉一次轉型別的動作!
※ 編輯: evil2004 (60.251.121.196), 04/22/2016 15:04:39