中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-04 06:51
48,038 主题排行 / 350,123 发帖 / 今日 0 篇 / 48,251 会员排行
DOS批处理 & 脚本技术(批处理室) » 读出数字的大写
可打印版本  715 / 6
第1楼 joytuyong1 发表于 2007-04-21 23:46
初级用户 发帖 39 积分 101
读出数字的大写
@echo off&setlocal enabledelayedexpansion
:start
echo\
set/p big=请输入一个数字:
echo/
FOR /L %%i IN (0 1 5) DO IF "!big:~%%i,1!"=="" SET count=%%i && goto tens
:tens
FOR /L %%j IN (0 1 %count%) DO (set mun=%%j
IF "!big:~%%j,1!" neq "" call :function !big:~%%j,1!)
IF %count% equ 1 echo\&echo/&echo. %T0%
IF %count% equ 2 echo\&echo/&echo. %T0%拾%T1%
IF %count% equ 3 echo\&echo/&echo. %T0%佰%T1%拾%T2%
IF %count% equ 4 echo\&echo/&echo. %T0%仟%T1%佰%T2%拾%T3%
IF %count% equ 5 echo\&echo/&echo. %T0%万%T1%仟%T2%佰%T3%拾%T4%
GOTO start
:function
set list=零壹贰叁肆伍陆柒捌玫
FOR /L %%k IN (0 1 9) DO if %1==%%k set T!mun!= !list:~%%k,1!
goto :eof

这是我看VBS教程时上面的一个练习我用P做出来
我想问一下为什么最后输出时每个字之间会有空格

另求VBS 教学资料,有的朋友请发给我本人不胜感激!
我的邮箱 happytu_1268@126.com

[ Last edited by joytuyong1 on 2007-4-21 at 10:48 AM ]
第2楼 zh159 发表于 2007-04-22 00:00
金牌会员 发帖 1,467 积分 3,687
“40005”本应是“肆万零伍”,实际显示“肆万零仟零佰零拾伍”

至于空格问题,是在
SET count=%%i_
set T!mun!=_!list:~%%k,1!_
有空格(我已将空格替换为“_”好认)

[ Last edited by zh159 on 2007-4-21 at 11:04 AM ]
第3楼 youxi01 发表于 2007-04-22 00:04
高级用户 发帖 247 积分 846 来自 湖南==》广东
其实,这个帖子早有人发过了,在思路挑战里,好象是无奈何斑竹发的。

至于你的代码,好象还有问题哦。稍微测试:

这个似乎不符合中国人的表达习惯。
第4楼 wudixin96 发表于 2007-04-22 00:04
银牌会员 发帖 931 积分 1,928
多了空格是因为
!list:~%%k,1!前后都多了个空格。所以用SET时。最好是
第5楼 joytuyong1 发表于 2007-04-22 01:19
初级用户 发帖 39 积分 101
谢谢大家指出错误, 这个我做完之后没有做细致的测试只随便打了几个数字便以为可了,抱歉 !
不过要实现这样的功能应怎么做呢,我现在觉的很乱了
肯请大家赐教!
3楼台说无奈何斑竹发过去发过我刚才搜了一下没有找到能不能将地址告诉我谢谢!
第6楼 youxi01 发表于 2007-04-22 03:45
高级用户 发帖 247 积分 846 来自 湖南==》广东
第7楼 zh159 发表于 2007-04-22 03:52
金牌会员 发帖 1,467 积分 3,687
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023