以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [讨论]這種用法:字符作數值用,能否放心?  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=34653)

--  作者:don
--  发布时间:2013/6/11 12:30:00
--  [讨论]這種用法:字符作數值用,能否放心?

如以下字符作數值用,能否放心?是否只有VB才支持這種用法(好像C是不支持的)?

Dim s1,s2 As String
Dim lst As String() ={"PH1001","PH-208"}

For Each s1 In lst
    s2 = s1.Replace("PH","")
    If s2 < 0 Then s2 =-s2      \'===>  正規寫法:  s2 =s2.Replace("-","")
    s2 = "208-" &  Format(s2*1,"000000")  \'===>  正規寫法: s2 = "208-" &  Format(Val(s2),"000000")  
    Output.Show(s2)
Next

\'結果:
\'208-001001
\'208-000208
[此贴子已经被作者于2013-6-11 14:14:22编辑过]

--  作者:lsy
--  发布时间:2013/6/11 13:54:00
--  
你办事,我放心。
--  作者:don
--  发布时间:2013/6/11 14:07:00
--  
以下是引用lsy在2013-6-11 13:54:00的发言:
你办事,我放心。
Lsy兄真幽啊,俺就是怕貪一時方便,日後落下麻煩.图片点击可在新窗口打开查看


--  作者:jspta
--  发布时间:2013/6/11 20:47:00
--  

加个cint()进行转换,以防万一。abs(cint()) 取正

VB会自动转换,foxtable好像有可能有问题

[此贴子已经被作者于2013-6-11 20:49:02编辑过]

--  作者:gsnake
--  发布时间:2013/6/11 22:29:00
--  
vb是语言中最灵活,但最不规范的!C#的语句要严谨的多