看板 Visual_Basic 關於我們 聯絡資訊
寫了一個簡單的程式要測試單精度的長度 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)
MOONRAKER:印象中這是BASICA時代傳下來的怪癖 你設b=1試試 04/12 00:18
MOONRAKER:看看len(str(b))會得到多少 04/12 00:18
stator:b設1,長度是2,不懂為何?? 04/12 09:10
pinkykk:http://0rz.tw/ryc2v Str()跟CStr()不同,正數會有空格 04/12 12:15
pinkykk:網址是msdn資料 04/12 12:15
MOONRAKER:沒錯這就是BASICA的老怪癖 省略符號時該位置仍有一空白 04/12 12:24
stator:那請問原文的13那個是怎麼算的呢? 04/12 12:58
stator:b為單精度且為正數~如果是整數為9,不懂為何會13? 04/12 12:59
stator:說錯,若為整數是溢位~ 04/12 13:00
horngsh:Len(strXXX)是傳回字串變數strXXX的字元數. 04/12 15:05
MOONRAKER:阿你1.234568E+07不是12個 加一個當然是13個 04/12 15:39
MOONRAKER:這不是很合理且合邏輯 04/12 15:39
horngsh:M大對極了 04/12 16:23
MOONRAKER:冏rz 04/12 19:30
stator:原來"."也算一個字元= =~謝謝M大 04/12 21:32
KKFN:正數加空白+點點也算字元 04/19 11:05