Board logo

标题: 读出数字的大写 [打印本页]

作者: joytuyong1     时间: 2007-4-21 23:46    标题: 读出数字的大写

@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 ]
作者: zh159     时间: 2007-4-22 00:00
“40005”本应是“肆万零伍”,实际显示“肆万零仟零佰零拾伍”

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

[ Last edited by zh159 on 2007-4-21 at 11:04 AM ]
作者: youxi01     时间: 2007-4-22 00:04
其实,这个帖子早有人发过了,在思路挑战里,好象是无奈何斑竹发的。

至于你的代码,好象还有问题哦。稍微测试:
请输入一个数字:10050



       壹 万 零 仟 零 佰 伍 拾 零
这个似乎不符合中国人的表达习惯。
作者: wudixin96     时间: 2007-4-22 00:04
多了空格是因为
set T!mun!= !list:~%%k,1!
!list:~%%k,1!前后都多了个空格。所以用SET时。最好是
set "T!mun!"="!list:~%%k,1!"

作者: joytuyong1     时间: 2007-4-22 01:19
谢谢大家指出错误, 这个我做完之后没有做细致的测试只随便打了几个数字便以为可了,抱歉 !
不过要实现这样的功能应怎么做呢,我现在觉的很乱了
肯请大家赐教!
3楼台说无奈何斑竹发过去发过我刚才搜了一下没有找到能不能将地址告诉我谢谢!
作者: youxi01     时间: 2007-4-22 03:45
http://www.cn-dos.net/forum/view ... B%E5%A4%A7%E5%86%99
作者: zh159     时间: 2007-4-22 03:52
[共同参与][挑战思路]批处理实现数字金额转大写


忘了看LS有了