找回密码
 加入
搜索
查看: 1865|回复: 4

[效率算法] KB转整数MB的正则?【已解决】

[复制链接]
发表于 2011-12-9 14:24:17 | 显示全部楼层 |阅读模式
本帖最后由 gzh888666 于 2011-12-9 16:33 编辑

KB转整数MB的正则应该怎么写?请教了!需要四舍五入!
发表于 2011-12-9 14:47:10 | 显示全部楼层
这个干嘛用正则呢?完全是个计算式~
$MB = Round($KB / 1024)

评分

参与人数 1金钱 +30 收起 理由
gzh888666 + 30

查看全部评分

发表于 2011-12-9 14:58:25 | 显示全部楼层
真是将正则滥用到极致了啊。不要一遇到问题就想用正则解决,思维都开始定向了。这个问题即便能用正则解决,效率也将是无比低下。你安分一点,用除法运算如何?效率没的说。难道楼主兄是在练习发散思维?

评分

参与人数 1金钱 +30 收起 理由
gzh888666 + 30

查看全部评分

 楼主| 发表于 2011-12-9 16:32:45 | 显示全部楼层
的确是想学学正则!呵呵,算是个垃圾题!
发表于 2011-12-9 17:13:08 | 显示全部楼层
本帖最后由 lixiaolong 于 2011-12-9 17:14 编辑

回复 1# gzh888666

用了正则,只支持整数,没事练习练习~
$KB = 1000
MsgBox(0, $KB & 'KB', KBtoMBSplit($KB))

$KB = 1024
MsgBox(0, $KB & 'KB', KBtoMBSplit($KB))

$KB = 100000
MsgBox(0, $KB & 'KB', KBtoMBSplit($KB))

$KB = 9216
MsgBox(0, $KB & 'KB', KBtoMBSplit($KB))

$KB = 8192
MsgBox(0, $KB & 'KB', KBtoMBSplit($KB))

$KB = 7168
MsgBox(0, $KB & 'KB', KBtoMBSplit($KB))

$KB = 6144
MsgBox(0, $KB & 'KB', KBtoMBSplit($KB))

$KB = 4096
MsgBox(0, $KB & 'KB', KBtoMBSplit($KB))

$KB = 3072
MsgBox(0, $KB & 'KB', KBtoMBSplit($KB))

$KB = 2048
MsgBox(0, $KB & 'KB', KBtoMBSplit($KB))

$KB = 2048
MsgBox(0, $KB & 'KB', KBtoMBSplit($KB))

$KB = 1024000
MsgBox(0, $KB & 'KB', KBtoMBSplit($KB))

Func KBtoMBSplit($numY); KBtoMB
        Local $KB_TO_MB = StringRegExpReplace($numY, '(?m)^(1)0[02][04]|(2)0[04][08]|(3)0[07][02]|(4)0[09][06]|' & _
                        '(5)[01][02]0|(6)[01][04][04]|(7)[01][06][08]|(8)[01][09][02]|(9)[02][01][06]', '\1\2\3\4\5\6\7\8\9')
;~         $KB_TO_MB = StringRegExpReplace($KB_TO_MB, '(\d)(?=(\d{3})+(?!\d))', '\1,'); 加逗号
        Return $KB_TO_MB & ' MB'
EndFunc   ;==>KBtoMBSplit


【(?m)^】这个去掉也行.

评分

参与人数 1金钱 +30 收起 理由
gzh888666 + 30 学习了!

查看全部评分

您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-6-3 18:25 , Processed in 0.084929 second(s), 26 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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