51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 3223|回复: 18
打印 上一主题 下一主题

[原创] 请教一个关于字符串的问题

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2008-5-7 21:29:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一个金额式的字符串形如12,456.50,现在我想得到12456.50,如何来实现呢,当然可能有更复杂的形式,如123,156,789.50,请教各位
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2008-5-7 21:59:55 | 只看该作者
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)
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2008-5-7 23:12:45 | 只看该作者

回复 2# 的帖子

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

[ 本帖最后由 lantianwei 于 2008-5-8 19:15 编辑 ]
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2008-5-8 09:07:20 | 只看该作者
2楼的正解!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

x
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2008-5-8 09:16:02 | 只看该作者
不错不错
方法收藏了~
回复 支持 反对

使用道具 举报

该用户从未签到

6#
发表于 2008-5-8 09:27:56 | 只看该作者
直接用FormatNumber函数就能实现

Dim s
s="123,156,789.50"
s=FormatNumber(s,2,0,0,0)
msgbox s
回复 支持 反对

使用道具 举报

该用户从未签到

7#
发表于 2008-5-8 09:35:45 | 只看该作者
楼上的是牛人啊!
哦哦哦哦哦 , 原来是版竹!
回复 支持 反对

使用道具 举报

该用户从未签到

8#
发表于 2008-5-8 09:43:59 | 只看该作者
原帖由 xiaonan 于 2008-5-8 09:27 发表
直接用FormatNumber函数就能实现

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



顶!
回复 支持 反对

使用道具 举报

该用户从未签到

9#
发表于 2008-5-8 09:56:16 | 只看该作者
呵呵,忘记了vbs还有FormatNumber这个方法,还是不够熟悉啊
回复 支持 反对

使用道具 举报

  • TA的每日心情
    开心
    2016-2-27 08:48
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]测试小兵

    10#
    发表于 2008-5-8 10:44:28 | 只看该作者
    还是对VBScript 了解地太少,还是看QTP 的帮助文件看的次数太少。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    11#
    发表于 2008-5-8 11:23:45 | 只看该作者
    不错,方法都很好~
    FormatNumber方法用于处理多数这类"Get Money Value"的问题还是比较方便.
    而若是对于多币种的情况,则2楼的思路比较适用,因为有些币种不是用","来做分隔符的~将","用传入参数替代就可以很好的处理这个问题~
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    12#
    发表于 2008-5-8 11:50:57 | 只看该作者
    msgbox CDbl("123,156,789.50")
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    13#
     楼主| 发表于 2008-5-12 09:02:07 | 只看该作者
    谢谢各位的解答了,我也发现有一个方法也挺好用的,大家可以试一下,
    Replace(expression, find, replacewith[, start[, count[, compare]]])
    这个方法 可以用replace("12,456.50",",","")
    具体的使用方法可以到QTP help 里搜索replace 即可找到
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    14#
    发表于 2008-5-12 10:05:18 | 只看该作者
    原帖由 gy21st 于 2008-5-8 11:50 发表
    msgbox CDbl("123,156,789.50")


    一语惊醒梦中人
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    15#
    发表于 2008-5-12 10:07:42 | 只看该作者
    原帖由 gy21st 于 2008-5-8 11:50 发表
    msgbox CDbl("123,156,789.50")

    好方法, 简单,赞一个:)
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2016-2-27 08:48
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]测试小兵

    16#
    发表于 2008-5-12 23:32:43 | 只看该作者
    原帖由 gy21st 于 2008-5-8 11:50 发表
    msgbox CDbl("123,156,789.50")


    各位有没有实际运行一下? 运行后 ,我得到的结果是123156789.5
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    17#
     楼主| 发表于 2008-5-14 20:07:37 | 只看该作者
    引用:
    原帖由 gy21st 于 2008-5-8 11:50 发表
    msgbox CDbl("123,156,789.50")
    各位有没有实际运行一下? 运行后 ,我得到的结果是123156789.5


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

    使用道具 举报

  • TA的每日心情
    开心
    2016-2-27 08:48
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]测试小兵

    18#
    发表于 2008-5-15 23:52:51 | 只看该作者
    回楼上的朋友,关于CDbl 和 FormatNumber 这两个函数的用法,在 QTP的帮助里面写得很清楚,所以没有人来回答你。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    19#
    发表于 2008-5-16 11:07:56 | 只看该作者
    原帖由 walker1020 于 2008-5-12 23:32 发表


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


    我也运行了一下,估计在转换的时候,做了四舍五入,所以0被干掉了。
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-20 21:16 , Processed in 0.084765 second(s), 29 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表