![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-09-15 12:17 |
共 47,812 主题排行 / 349,917 发帖 / 今日 0 篇 / 48,268 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » [共同参与][挑战思路]中文数字阿拉伯化 |
| 可打印版本 6,805 / 11 |
| 第1楼 namejm | 发表于 2007-01-03 12:18 |
| 荣誉版主 发帖 1,737 积分 5,226 来自 成都 | |
|
[共同参与][挑战思路]中文数字阿拉伯化 头两天,无奈何 兄提出了把小写的金额转化为大写的想法:批处理实现数字金额转大写,引来了不少高手,其中的解法让人大开眼界。
qzwqzw 兄提出了逆向转换的想法,觉得很有意思,尝试着写了段代码,没有错误检测语句,也没有去做代码精简的工作,发出来让大家测试一下,也希望各位能提供不同的解法: [ Last edited by namejm on 2007-1-3 at 08:18 PM ] |
|
| 第2楼 qzwqzw | 发表于 2007-01-03 23:23 |
| 银牌会员 发帖 636 积分 2,343 | |
|
你的代码用捌仟零叁万测试有问题,具体在哪自己找找吧
———————————————————————————————— 另发一段完整的互转代码 测试中有意加了一些无效数字 RMB2Num段我很不满意 一者没有良好的检查,findtsr 不支持双字节字符的正则 二者没有良好的结构,算法和数据结构的设计缺陷,导致代码结构的缺陷 [ Last edited by qzwqzw on 2007-1-3 at 11:22 AM ] |
|
| 第3楼 namejm | 发表于 2007-01-04 00:10 |
| 荣誉版主 发帖 1,737 积分 5,226 来自 成都 | |
|
呵呵,测试不严谨,正在查错。
|
|
| 第4楼 qzwqzw | 发表于 2007-01-04 00:30 |
| 银牌会员 发帖 636 积分 2,343 | |
|
R3仅是将RMB2Num段的结构作了调整
因为算法和数据结构未变 所以一些固有缺陷仅仅转变了表现方式 比如嵌套的if、冗余的else set等 [ Last edited by qzwqzw on 2007-1-3 at 11:34 AM ] |
|
| 第5楼 namejm | 发表于 2007-01-04 01:58 |
| 荣誉版主 发帖 1,737 积分 5,226 来自 成都 | |
|
经过修改,顶楼代码已经能处理形如 捌仟零叁万、捌仟零叁拾万 之类的中文数字(感谢 qzwqzw 在 2F 和 6F 指出这些问题),请各位继续测试。
RE qzwqzw: 如果能把解题思路放在代码里的话,就能让别人容易理解你的算法了——开始硬着头皮看你的代码-_-||。 [ Last edited by namejm on 2007-1-3 at 03:10 PM ] |
|
| 第6楼 qzwqzw | 发表于 2007-01-04 02:32 |
| 银牌会员 发帖 636 积分 2,343 | |
|
继续用捌仟零叁拾万测试出现问题
———————————————————————————————— 在我的代码里 :Num2RMB 段比较简单,直接按位替换数字和进位后,再针对零整问题分步替换 :RMB2Num 段比较麻烦,因为算法上并不成熟,所以不想多做说明 主要是对tbl2与rmb进行同步扫描 两者对齐时进行数字替换并同步移位 否则单独移位%tbl2%使之对齐,同时用0补空位 代码本身已大体反映了算法的轮廓 可能我的注释反而会加大阅读上的障碍,所以一概略去 一句清晰的代码胜过十句模糊的注释 |
|
| 第7楼 namejm | 发表于 2007-01-04 04:07 |
| 荣誉版主 发帖 1,737 积分 5,226 来自 成都 | |
|
RE qzwqzw:
一段代码确实不需要过多的注释,但是,如果能把思路一并附上的话,则效果更好,因为思路的说明信息能让人从一开始就知道这个代码的大致流程,当代码过多的时候,不至于跳转得晕头转向而忘记了每节代码的目的。 当然,提供思路说明信息只是为了能让别人更好地理解代码,是为了方便他人,不是必需的内容。 |
|
| 第8楼 youxi01 | 发表于 2007-01-04 07:45 |
| 高级用户 发帖 247 积分 846 来自 湖南==》广东 | |
|
来个"另类"点的吧,目前只支持1亿以内的数字,欢迎测试!
|
|
| 第9楼 tigerpower | 发表于 2007-01-04 10:48 |
| 中级用户 发帖 99 积分 377 | |
|
哈哈,偶难得写这么长的纯批处理:)
@echo off [ Last edited by tigerpower on 2007-1-6 at 12:24 PM ] |
|
| 第10楼 tao0610 | 发表于 2007-01-05 08:28 |
| 高级用户 发帖 218 积分 579 | |
|
发一个算术法算出来的.
要小于2147483648,只能是整型 |
|
| 第11楼 vipchenlang | 发表于 2007-11-30 23:51 |
| 新手上路 发帖 3 积分 6 | |
|
又长见识了!!!!!!!!!!!!!!!!!!!!!
|
|
| 第12楼 new999 | 发表于 2008-12-03 18:42 |
| 新手上路 发帖 1 积分 1 | |
Originally posted by youxi01 at 2007-1-4 07:45: |
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |