中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-08-04 07:54
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 读出数字的大写 查看 717 回复 6
楼 主 读出数字的大写 发表于 2007-04-21 23:46 ·  中国 江西 南昌 电信
初级用户
积分 101
发帖 39
注册 2006-11-21 22:04
19年会员
UID 71280
性别 男
状态 离线
@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 发表于 2007-04-22 00:00 ·  中国 广西 玉林 博白县 电信
金牌会员
★★★★
积分 3,687
发帖 1,467
注册 2005-08-08 12:00
20年会员
UID 44210
状态 离线
“40005”本应是“肆万零伍”,实际显示“肆万零仟零佰零拾伍”

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

[ Last edited by zh159 on 2007-4-21 at 11:04 AM ]
3 发表于 2007-04-22 00:04 ·  中国 广东 清远 联通
高级用户
★★
积分 846
发帖 247
注册 2006-10-27 12:03
19年会员
UID 68504
性别 男
来自 湖南==》广东
状态 离线
其实,这个帖子早有人发过了,在思路挑战里,好象是无奈何斑竹发的。

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


请输入一个数字:10050



壹 万 零 仟 零 佰 伍 拾 零

这个似乎不符合中国人的表达习惯。
4 发表于 2007-04-22 00:04 ·  中国 浙江 杭州 联通
银牌会员
★★★
积分 1,928
发帖 931
注册 2007-01-06 11:46
19年会员
UID 75624
性别 男
状态 离线
多了空格是因为
set T!mun!= !list:~%%k,1! 

!list:~%%k,1!前后都多了个空格。所以用SET时。最好是
set "T!mun!"="!list:~%%k,1!"
5 发表于 2007-04-22 01:19 ·  中国 江西 南昌 电信
初级用户
积分 101
发帖 39
注册 2006-11-21 22:04
19年会员
UID 71280
性别 男
状态 离线
谢谢大家指出错误, 这个我做完之后没有做细致的测试只随便打了几个数字便以为可了,抱歉 !
不过要实现这样的功能应怎么做呢,我现在觉的很乱了
肯请大家赐教!
3楼台说无奈何斑竹发过去发过我刚才搜了一下没有找到能不能将地址告诉我谢谢!
6 发表于 2007-04-22 03:45 ·  中国 广东 清远 联通
高级用户
★★
积分 846
发帖 247
注册 2006-10-27 12:03
19年会员
UID 68504
性别 男
来自 湖南==》广东
状态 离线
7 发表于 2007-04-22 03:52 ·  中国 广西 玉林 博白县 电信
金牌会员
★★★★
积分 3,687
发帖 1,467
注册 2005-08-08 12:00
20年会员
UID 44210
状态 离线
论坛跳转: