如題,我下位機通訊回來的資料是16進制字串,想把它轉換成浮點數,找了很多辦法都實作不了,來論壇求助了
例如
16#3F800000=1.0
16#3FC2F1A9=1.53
uj5u.com熱心網友回復:
在 3F800000 前加上 '&H' 就等于 &H3F80numHex = "&H" & strHex
uj5u.com熱心網友回復:
大佬,能不能再稍微詳細點
uj5u.com熱心網友回復:
Dim str As String = "3F800000"
Dim i As Integer = CInt(Val("&H" & str))
uj5u.com熱心網友回復:
這個好像得出來的結果是整形的……
我想要的是double型的結果資料
uj5u.com熱心網友回復:
不會將integer 改成 double,將cint 該 cdbl?uj5u.com熱心網友回復:
大佬你好,剛剛拿您的代碼敲了下,發現顯示出來的資料是整形
按照您的方式,我加了一行代碼,顯示出來應該是double型,但是顯示的還是整形,不是我需要的1.0資料
Dim str As String = "3F800000"
Dim i As Integer = CInt(Val("&H" & str))
Dim j As Double = CDbl(Val("&H" & str))
Label1.Text = i
Label2.Text = j

uj5u.com熱心網友回復:
已經改了,而且加了fomart下去,感徑訓是一樣沒變化
Dim str As String = "3F800000"
Dim i As Integer = CInt(Val("&H" & str))
Dim j As Double = CDbl(Val("&H" & str))
Dim k As Double = Format(i, "0.0")
Label1.Text = k
Label2.Text = k
uj5u.com熱心網友回復:
網上搜下有十進制到十六進制轉換的函式,我就怕用的那個,現在電腦不在身邊,你自己找找uj5u.com熱心網友回復:
Dim i = &H3F800000
Dim j = &H3FC2F1A9
Dim fi = BitConverter.ToSingle(BitConverter.GetBytes(i), 0)
Dim fj = BitConverter.ToSingle(BitConverter.GetBytes(j), 0)
uj5u.com熱心網友回復:
如果輸入時字串,Private Sub SurroundingSub()
Dim si = "3F800000"
Dim sj = "3FC2F1A9"
Dim i = Integer.Parse(si, System.Globalization.NumberStyles.HexNumber)
Dim j = Integer.Parse(sj, System.Globalization.NumberStyles.HexNumber)
Dim fi As Single = BitConverter.ToSingle(BitConverter.GetBytes(i), 0)
Dim fj As Single = BitConverter.ToSingle(BitConverter.GetBytes(j), 0)
End Sub
uj5u.com熱心網友回復:
我當天的下午也是摸到這個指令,現在做出來了,謝謝大佬
uj5u.com熱心網友回復:
Dim x As Integer = &H3F80
Dim y As Double = Convert.ToDouble(x)
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/92040.html
標籤:VB.NET
下一篇:Revit二次開發
