回复 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) | | | | | | ::对输入数字处理,取出整数和小数 | | 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:亿万=亿% | | | | if !j! equ 0 (set y=%Y%整) else set y=%Y% | | | | | | 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 转换异常 返回:已超出范围,请重新输入 参考:人民币壹分 |