查看完整版本: 请教一个关于字符串的问题

cnqinxc 2008-5-7 21:29

请教一个关于字符串的问题

一个金额式的字符串形如12,456.50,现在我想得到12456.50,如何来实现呢,当然可能有更复杂的形式,如123,156,789.50,请教各位

zte_boy 2008-5-7 21:59

Function GetMoney(str)
   Dim tempstr
   tempstr = ""
   myarray = split(str , ",")
   For i = LBound(myarray) to UBound(myarray)
           tempstr = tempstr&myarray(i)
   Next
   msgbox(tempstr)
End Function

Call GetMoney(str)

lantianwei 2008-5-7 23:12

回复 2# 的帖子

忘记处理一个点号
》看错了,:L 看来最近是太累了

[[i] 本帖最后由 lantianwei 于 2008-5-8 19:15 编辑 [/i]]

wyy83 2008-5-8 09:07

2楼的正解!

Simatu 2008-5-8 09:16

不错不错:lol
方法收藏了~

xiaonan 2008-5-8 09:27

直接用FormatNumber函数就能实现

Dim s
s="123,156,789.50"
s=FormatNumber(s,2,0,0,0)
msgbox s

dengzhy 2008-5-8 09:35

楼上的是牛人啊!
哦哦哦哦哦 , 原来是版竹!

Simatu 2008-5-8 09:43

[quote]原帖由 [i]xiaonan[/i] 于 2008-5-8 09:27 发表 [url=http://bbs.51testing.com/redirect.php?goto=findpost&pid=964048&ptid=114101][img]http://bbs.51testing.com/images/common/back.gif[/img][/url]
直接用FormatNumber函数就能实现

Dim s
s="123,156,789.50"
s=FormatNumber(s,2,0,0,0)
msgbox s [/quote]


顶!

zte_boy 2008-5-8 09:56

呵呵,忘记了vbs还有FormatNumber这个方法,还是不够熟悉啊

walker1020 2008-5-8 10:44

还是对VBScript 了解地太少,还是看QTP 的帮助文件看的次数太少。

hsjzfling 2008-5-8 11:23

不错,方法都很好~
FormatNumber方法用于处理多数这类"Get Money Value"的问题还是比较方便.
而若是对于多币种的情况,则2楼的思路比较适用,因为有些币种不是用","来做分隔符的~将","用传入参数替代就可以很好的处理这个问题~:)

gy21st 2008-5-8 11:50

msgbox CDbl("123,156,789.50")

cnqinxc 2008-5-12 09:02

谢谢各位的解答了,我也发现有一个方法也挺好用的,大家可以试一下,
Replace(expression, find, replacewith[, start[, count[, compare]]])
这个方法 可以用replace("12,456.50",",","")
具体的使用方法可以到QTP help 里搜索replace 即可找到

hsjzfling 2008-5-12 10:05

[quote]原帖由 [i]gy21st[/i] 于 2008-5-8 11:50 发表 [url=http://bbs.51testing.com/redirect.php?goto=findpost&pid=964266&ptid=114101][img]http://bbs.51testing.com/images/common/back.gif[/img][/url]
msgbox CDbl("123,156,789.50") [/quote]

一语惊醒梦中人

zte_boy 2008-5-12 10:07

[quote]原帖由 [i]gy21st[/i] 于 2008-5-8 11:50 发表 [url=http://bbs.51testing.com/redirect.php?goto=findpost&pid=964266&ptid=114101][img]http://bbs.51testing.com/images/common/back.gif[/img][/url]
msgbox CDbl("123,156,789.50") [/quote]
好方法, 简单,赞一个:)

walker1020 2008-5-12 23:32

[quote]原帖由 [i]gy21st[/i] 于 2008-5-8 11:50 发表 [url=http://bbs.51testing.com/redirect.php?goto=findpost&pid=964266&ptid=114101][img]http://bbs.51testing.com/images/common/back.gif[/img][/url]
msgbox CDbl("123,156,789.50") [/quote]

各位有没有实际运行一下? 运行后 ,我得到的结果是123156789.5

cnqinxc 2008-5-14 20:07

[quote]引用:
原帖由 gy21st 于 2008-5-8 11:50 发表
msgbox CDbl("123,156,789.50")
各位有没有实际运行一下? 运行后 ,我得到的结果是123156789.5[/quote]

我运行的时候也是这样的,请问CDbl("123,156,789.50")  FormatNumber(s,2,0,0,0)
这两个方法具体是什么意思,有什么作用

walker1020 2008-5-15 23:52

回楼上的朋友,关于CDbl 和 FormatNumber 这两个函数的用法,在 QTP的帮助里面写得很清楚,所以没有人来回答你。

heqingbluesky 2008-5-16 11:07

[quote]原帖由 [i]walker1020[/i] 于 2008-5-12 23:32 发表 [url=http://bbs.51testing.com/redirect.php?goto=findpost&pid=967061&ptid=114101][img]http://bbs.51testing.com/images/common/back.gif[/img][/url]


各位有没有实际运行一下? 运行后 ,我得到的结果是123156789.5 [/quote]

我也运行了一下,估计在转换的时候,做了四舍五入,所以0被干掉了。
页: [1]
查看完整版本: 请教一个关于字符串的问题