[.NET] 關於16轉10進制 Val("&H" & Textbox1.t …
看板Visual_Basic作者Gnituynil (.......................)時間15年前 (2009/04/17 17:33)推噓2(2推 0噓 6→)留言8則, 2人參與討論串1/1
我用的是Visual studio 2005的VB
我要的功能是輸入一個16進制的數字 轉換成10進制輸出
我找到的方法是Textbox2.text = Val("&H" & Textbox1.text)
一開始用的很順沒出現什麼問題
但是後來我發現 有些數字轉換出來會變成負數
測試之後發現 輸入 7FFF 輸出是 32767
輸入 8000 輸出是 -32768
輸入 FFFF 輸出是 -1
輸入10000 輸出是 65536
為什麼中間有範圍會變負數
是因為這個函數支援位元數有限嗎?
有什麼瓣法改善嗎? 或是有其他更好用的內建函數?
難道只能額外自己寫副程式了嗎??
--------------------------------------------------------------------------
謝謝回覆的大大!
除了下面回覆的方法以外
我剛剛也發現一個方法好像也可以解決這個問題
把 Textbox2.text = Val("&H" & Textbox1.text)
改成Textbox2.text = Val(Str("&H" & Textbox1.text))
先轉成字串 再轉回數值 這樣好像也不會有問題!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 122.122.137.253
推
04/17 18:07, , 1F
04/17 18:07, 1F
→
04/17 18:07, , 2F
04/17 18:07, 2F
→
04/17 18:08, , 3F
04/17 18:08, 3F
→
04/17 18:08, , 4F
04/17 18:08, 4F
→
04/17 18:09, , 5F
04/17 18:09, 5F
→
04/17 18:11, , 6F
04/17 18:11, 6F
※ 編輯: Gnituynil 來自: 122.122.137.253 (04/17 18:23)
→
04/17 18:17, , 7F
04/17 18:17, 7F
推
04/19 13:45, , 8F
04/19 13:45, 8F