[VB6 ] 請教單精度長度的問題

看板Visual_Basic作者 (別急著吃棉花糖)時間14年前 (2011/04/11 22:27), 編輯推噓4(4012)
留言16則, 5人參與, 最新討論串1/1
寫了一個簡單的程式要測試單精度的長度 Private Sub Command1_Click() Dim b As Single b = 12345678 Print Str(b) Print Len(Str(b)) End Sub 印出來分別是1.234568E+07和13,第一個印出來沒有疑問 但請問13是怎麼算出來呢? 謝謝各位前輩 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.62.36.242 ※ 編輯: stator 來自: 61.62.36.242 (04/11 22:29)

04/12 00:18, , 1F
印象中這是BASICA時代傳下來的怪癖 你設b=1試試
04/12 00:18, 1F

04/12 00:18, , 2F
看看len(str(b))會得到多少
04/12 00:18, 2F

04/12 09:10, , 3F
b設1,長度是2,不懂為何??
04/12 09:10, 3F

04/12 12:15, , 4F
http://0rz.tw/ryc2v Str()跟CStr()不同,正數會有空格
04/12 12:15, 4F

04/12 12:15, , 5F
網址是msdn資料
04/12 12:15, 5F

04/12 12:24, , 6F
沒錯這就是BASICA的老怪癖 省略符號時該位置仍有一空白
04/12 12:24, 6F

04/12 12:58, , 7F
那請問原文的13那個是怎麼算的呢?
04/12 12:58, 7F

04/12 12:59, , 8F
b為單精度且為正數~如果是整數為9,不懂為何會13?
04/12 12:59, 8F

04/12 13:00, , 9F
說錯,若為整數是溢位~
04/12 13:00, 9F

04/12 15:05, , 10F
Len(strXXX)是傳回字串變數strXXX的字元數.
04/12 15:05, 10F

04/12 15:39, , 11F
阿你1.234568E+07不是12個 加一個當然是13個
04/12 15:39, 11F

04/12 15:39, , 12F
這不是很合理且合邏輯
04/12 15:39, 12F

04/12 16:23, , 13F
M大對極了
04/12 16:23, 13F

04/12 19:30, , 14F
冏rz
04/12 19:30, 14F

04/12 21:32, , 15F
原來"."也算一個字元= =~謝謝M大
04/12 21:32, 15F

04/19 11:05, , 16F
正數加空白+點點也算字元
04/19 11:05, 16F
文章代碼(AID): #1Dem_JfP (Visual_Basic)