返回列表 发帖
回复 8# smss
   
       使用自己做的测试数据集做了对比,结果如下
@echo off&setlocal enabledelayedexpansion
:测试
for /f "tokens=1,2 delims=¥ " %%y in ('findstr "^¥" %~sf0') do (
call :转换 %%y
echo. 小写:%%y  大写:!返回! >> %0.log
if not "人民币!返回!"=="%%z" (
echo %%y 转换异常 返回:!返回! 参考:%%z
echo %%y 转换异常 返回:!返回! 参考:%%z>> %0.log
)
)
pause>nul
goto :eof
:转换
setlocal enabledelayedexpansion
set a=零壹贰叁肆伍陆柒捌玖
set b=分角元拾佰仟万拾佰仟亿拾佰仟
set "Z=999999999999.99"
:X
if not "%Y%"=="" (endlocal & set 返回=%Y%& goto :eof)
rem color 0d
rem setlocal
::对输入数字处理,取出整数和小数
set Z=%1
if /i "%Z%"=="q" exit
if "%Z%"=="0" set y=零元整&goto X
for /f "tokens=1,2 delims=." %%a in ('echo;%Z%^|findstr /b /e "[1-9][0-9]* 0 [1-9][0-9]*\.[0-9]* 0\.[0-9]*"') do (set Z2=%%b00&set Z=%%a!Z2:~0,2!&set "i=%%a"&set "j=%%b")
if defined i (if defined j (if "%j:~2%" NEQ "" (goto U) else if "%i:~12%" NEQ "" (goto U) else (goto Y)
) else if "%i:~12%" NEQ "" (goto U) else (goto Y)) else (goto U)
:Y
call set Y=%%a:~%Z:~-1,1%,1%%%%b:~%bit%,1%%%Y%
set /a bit+=1
set Z=%Z:~0,-1%
if not "%Z%"=="" goto Y
set Y=%Y:零壹=壹%
set Y=%Y:零贰=贰%
set Y=%Y:零叁=叁%
set Y=%Y:零肆=肆%
set Y=%Y:零伍=伍%
set Y=%Y:零柒=柒%
set Y=%Y:零捌=捌%
set Y=%Y:零玖=玖%
set Y=%Y:零仟=零%
set Y=%Y:零佰=零%
set Y=%Y:零拾=零%
set Y=%Y:零零零=零%
set Y=%Y:零零=零%
set Y=%Y:零万=万元%
set Y=%Y:零亿=亿元%
set Y=%Y:零零=零%
set Y=%Y:零分=零%
set Y=%Y:零角=零%
set Y=%Y:角零=角%
set Y=%Y:零零=%
set Y=%Y:零亿=亿%
set Y=%Y:零万=万%
set Y=%Y:零元=%
set Y=%Y:零万=元%
set Y=%Y:亿万=亿%
rem color 0b
if !j! equ 0 (set y=%Y%整) else set y=%Y%
rem endlocal
rem ping 0 -n "2">nul&
goto X
:U
set y=已超出范围,请重新输入&goto X
goto :eof
:: 人民币金额大小写转换测试集
0 人民币零元整
1 人民币壹元整
2 人民币贰元整
3 人民币叁元整
4 人民币肆元整
5 人民币伍元整
6 人民币陆元整
7 人民币柒元整
8 人民币捌元整
9 人民币玖元整
10 人民币壹拾元整
100 人民币壹佰元整
1000 人民币壹仟元整
10000 人民币壹万元整
100000 人民币壹拾万元整
1000000 人民币壹佰万元整
10000000 人民币壹仟万元整
100000000 人民币壹亿元整
1000000000 人民币壹拾亿元整
10000000000 人民币壹佰亿元整
100000000000 人民币壹仟亿元整
1000000000000 人民币壹万亿元整
11 人民币壹拾壹元整
101 人民币壹佰零壹元整
111 人民币壹佰壹拾壹元整
1001 人民币壹仟零壹元整
1010 人民币壹仟零壹拾元整
1011 人民币壹仟零壹拾壹元整
1100 人民币壹仟壹佰元整
1101 人民币壹仟壹佰零壹元整
1111 人民币壹仟壹佰壹拾壹元整
10001 人民币壹万零壹元整
10010 人民币壹万零壹拾元整
10100 人民币壹万零壹佰元整
11000 人民币壹万壹仟元整
11100 人民币壹万壹仟壹佰元整
11110 人民币壹万壹仟壹佰壹拾元整
11111 人民币壹万壹仟壹佰壹拾壹元整
100001 人民币壹拾万零壹元整
100010 人民币壹拾万零壹拾元整
100100 人民币壹拾万零壹佰元整
101000 人民币壹拾万零壹仟元整
110000 人民币壹拾壹万元整
110001 人民币壹拾壹万零壹元整
110010 人民币壹拾壹万零壹拾元整
110100 人民币壹拾壹万零壹佰元整
111000 人民币壹拾壹万壹仟元整
100000001 人民币壹亿零壹元整
1000000001 人民币壹拾亿零壹元整
1000000010 人民币壹拾亿零壹拾元整
1000001000 人民币壹拾亿零壹仟元整
1000010000 人民币壹拾亿零壹万元整
1000100000 人民币壹拾亿零壹拾万元整
1010000000 人民币壹拾亿零壹仟万元整
0.0 人民币零元整
0.00 人民币零元整
0.1 人民币壹角
0.01 人民币壹分
0.10 人民币壹角
1.1 人民币壹元壹角
10.1 人民币壹拾元零壹角
11.1 人民币壹拾壹元壹角
10.01 人民币壹拾元零壹分
11.01 人民币壹拾壹元零壹分
100.1 人民币壹佰元零壹角
100.01 人民币壹佰元零壹分
1000.1 人民币壹仟元零壹角
1000.01 人民币壹仟元零壹分
10000.1 人民币壹万元零壹角
10000.01 人民币壹万元零壹分
100000.1 人民币壹拾万元零壹角
100000.01 人民币壹拾万元零壹分
¥.1 人民币壹角
¥.01 人民币壹分 COPY
小写:0  大写:零元整
小写:1  大写:壹元整
小写:2  大写:贰元整
小写:3  大写:叁元整
小写:4  大写:肆元整
小写:5  大写:伍元整
小写:6  大写:陆元整
小写:7  大写:柒元整
小写:8  大写:捌元整
小写:9  大写:玖元整
小写:10  大写:壹拾整
10 转换异常 返回:壹拾整 参考:人民币壹拾元整
小写:100  大写:壹佰整
100 转换异常 返回:壹佰整 参考:人民币壹佰元整
小写:1000  大写:壹仟整
1000 转换异常 返回:壹仟整 参考:人民币壹仟元整
小写:10000  大写:壹万整
10000 转换异常 返回:壹万整 参考:人民币壹万元整
小写:100000  大写:壹拾万元整
小写:1000000  大写:壹佰万元整
小写:10000000  大写:壹仟万元整
小写:100000000  大写:壹亿元整
小写:1000000000  大写:壹拾亿元万元整
1000000000 转换异常 返回:壹拾亿元万元整 参考:人民币壹拾亿元整
小写:10000000000  大写:壹佰亿元万元整
10000000000 转换异常 返回:壹佰亿元万元整 参考:人民币壹佰亿元整
小写:100000000000  大写:壹仟亿元万元整
100000000000 转换异常 返回:壹仟亿元万元整 参考:人民币壹仟亿元整
小写:1000000000000  大写:已超出范围,请重新输入
1000000000000 转换异常 返回:已超出范围,请重新输入 参考:人民币壹万亿元整
小写:11  大写:壹拾壹元整
小写:101  大写:壹佰零壹元整
小写:111  大写:壹佰壹拾壹元整
小写:1001  大写:壹仟零壹元整
小写:1010  大写:壹仟零壹拾整
1010 转换异常 返回:壹仟零壹拾整 参考:人民币壹仟零壹拾元整
小写:1011  大写:壹仟零壹拾壹元整
小写:1100  大写:壹仟壹佰整
1100 转换异常 返回:壹仟壹佰整 参考:人民币壹仟壹佰元整
小写:1101  大写:壹仟壹佰零壹元整
小写:1111  大写:壹仟壹佰壹拾壹元整
小写:10001  大写:壹万零壹元整
小写:10010  大写:壹万零壹拾整
10010 转换异常 返回:壹万零壹拾整 参考:人民币壹万零壹拾元整
小写:10100  大写:壹万零壹佰整
10100 转换异常 返回:壹万零壹佰整 参考:人民币壹万零壹佰元整
小写:11000  大写:壹万壹仟整
11000 转换异常 返回:壹万壹仟整 参考:人民币壹万壹仟元整
小写:11100  大写:壹万壹仟壹佰整
11100 转换异常 返回:壹万壹仟壹佰整 参考:人民币壹万壹仟壹佰元整
小写:11110  大写:壹万壹仟壹佰壹拾整
11110 转换异常 返回:壹万壹仟壹佰壹拾整 参考:人民币壹万壹仟壹佰壹拾元整
小写:11111  大写:壹万壹仟壹佰壹拾壹元整
小写:100001  大写:壹拾万元零壹元整
100001 转换异常 返回:壹拾万元零壹元整 参考:人民币壹拾万零壹元整
小写:100010  大写:壹拾万元零壹拾整
100010 转换异常 返回:壹拾万元零壹拾整 参考:人民币壹拾万零壹拾元整
小写:100100  大写:壹拾万元零壹佰整
100100 转换异常 返回:壹拾万元零壹佰整 参考:人民币壹拾万零壹佰元整
小写:101000  大写:壹拾万元壹仟整
101000 转换异常 返回:壹拾万元壹仟整 参考:人民币壹拾万零壹仟元整
小写:110000  大写:壹拾壹万整
110000 转换异常 返回:壹拾壹万整 参考:人民币壹拾壹万元整
小写:110001  大写:壹拾壹万零壹元整
小写:110010  大写:壹拾壹万零壹拾整
110010 转换异常 返回:壹拾壹万零壹拾整 参考:人民币壹拾壹万零壹拾元整
小写:110100  大写:壹拾壹万零壹佰整
110100 转换异常 返回:壹拾壹万零壹佰整 参考:人民币壹拾壹万零壹佰元整
小写:111000  大写:壹拾壹万壹仟整
111000 转换异常 返回:壹拾壹万壹仟整 参考:人民币壹拾壹万壹仟元整
小写:100000001  大写:壹亿元零壹元整
100000001 转换异常 返回:壹亿元零壹元整 参考:人民币壹亿零壹元整
小写:1000000001  大写:壹拾亿元万元零壹元整
1000000001 转换异常 返回:壹拾亿元万元零壹元整 参考:人民币壹拾亿零壹元整
小写:1000000010  大写:壹拾亿元万元零壹拾整
1000000010 转换异常 返回:壹拾亿元万元零壹拾整 参考:人民币壹拾亿零壹拾元整
小写:1000001000  大写:壹拾亿元万元壹仟整
1000001000 转换异常 返回:壹拾亿元万元壹仟整 参考:人民币壹拾亿零壹仟元整
小写:1000010000  大写:壹拾亿元零壹万整
1000010000 转换异常 返回:壹拾亿元零壹万整 参考:人民币壹拾亿零壹万元整
小写:1000100000  大写:壹拾亿元零壹拾万元整
1000100000 转换异常 返回:壹拾亿元零壹拾万元整 参考:人民币壹拾亿零壹拾万元整
小写:1010000000  大写:壹拾亿元壹仟万元整
1010000000 转换异常 返回:壹拾亿元壹仟万元整 参考:人民币壹拾亿零壹仟万元整
小写:0.0  大写:零万=元整
0.0 转换异常 返回:零万=元整 参考:人民币零元整
小写:0.00  大写:零万=元整
0.00 转换异常 返回:零万=元整 参考:人民币零元整
小写:0.1  大写:壹角
小写:0.01  大写:零壹分
0.01 转换异常 返回:零壹分 参考:人民币壹分
小写:0.10  大写:壹角
小写:1.1  大写:壹元壹角
小写:10.1  大写:壹拾壹角
10.1 转换异常 返回:壹拾壹角 参考:人民币壹拾元零壹角
小写:11.1  大写:壹拾壹元壹角
小写:10.01  大写:壹拾零壹分
10.01 转换异常 返回:壹拾零壹分 参考:人民币壹拾元零壹分
小写:11.01  大写:壹拾壹元零壹分
小写:100.1  大写:壹佰壹角
100.1 转换异常 返回:壹佰壹角 参考:人民币壹佰元零壹角
小写:100.01  大写:壹佰零壹分
100.01 转换异常 返回:壹佰零壹分 参考:人民币壹佰元零壹分
小写:1000.1  大写:壹仟壹角
1000.1 转换异常 返回:壹仟壹角 参考:人民币壹仟元零壹角
小写:1000.01  大写:壹仟零壹分
1000.01 转换异常 返回:壹仟零壹分 参考:人民币壹仟元零壹分
小写:10000.1  大写:壹万壹角
10000.1 转换异常 返回:壹万壹角 参考:人民币壹万元零壹角
小写:10000.01  大写:壹万零壹分
10000.01 转换异常 返回:壹万零壹分 参考:人民币壹万元零壹分
小写:100000.1  大写:壹拾万元壹角
100000.1 转换异常 返回:壹拾万元壹角 参考:人民币壹拾万元零壹角
小写:100000.01  大写:壹拾万元零壹分
小写:.1  大写:已超出范围,请重新输入
.1 转换异常 返回:已超出范围,请重新输入 参考:人民币壹角
小写:.01  大写:已超出范围,请重新输入
.01 转换异常 返回:已超出范围,请重新输入 参考:人民币壹分
天的白色影子

TOP

返回列表