[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
本帖最后由 idwma 于 2022-8-3 14:59 编辑

回复 3# qixiaobin0715


    看了前辈们的受益良多,来练习一下
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set str=九万九千九百九十九
  4. set _零=0
  5. for %%i in (一 二 三 四 五 六 七 八 九) do (
  6.     set /a x+=1
  7.     set _%%i=!x!
  8. )
  9. set x=1
  10. for %%i in (十 百 千 万) do (
  11.     set /a x*=10
  12.     set _%%i=!x!
  13. )
  14. set x=0
  15. :to
  16. set /a xx=x+1
  17. set m1=!str:~%x%,1!
  18. set m2=!str:~%xx%,1!
  19. if "%m1%"=="" (
  20.     echo %n%
  21.     pause
  22.     goto :eof
  23. )
  24. if "%m2%"=="十" (
  25.     set /a n+=!_%m1%!*!_%m2%!
  26.     set /a x+=2
  27. ) else if "%m2%"=="百" (
  28.     set /a n+=!_%m1%!*!_%m2%!
  29.     set /a x+=2
  30. ) else if "%m2%"=="千" (
  31.     set /a n+=!_%m1%!*!_%m2%!
  32.     set /a x+=2
  33. ) else if "%m2%"=="万" (
  34.     set /a n+=!_%m1%!*!_%m2%!
  35.     set /a x+=2
  36. ) else (
  37.     set m1=!str:~%x%,1!
  38.     set /a n+=!_%m1%!
  39.     set /a x+=1
  40. )
  41. goto :to
复制代码
1

评分人数

TOP

回复 10# aloha20200628


    是不是可以按千分号分段,算完把每段按顺序用字符的方法拼起来,就不受数字上限了

TOP

回复 12# aloha20200628


    按千分段的想法大概像这样,就拿0751这个来改一下
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set strr=九千九百九十九亿九千九百九十九万九千九百九十九
  4. set strr=!strr:零=!
  5. for %%i in (一 二 三 四 五 六 七 八 九) do (
  6.     set /a x+=1
  7.     set _%%i=!x!
  8. )
  9. set x=1
  10. for %%i in (十 百 千 万 亿) do (
  11.     set /a x*=10
  12.     set #%%i=!x!
  13.     set %%i=1
  14. )
  15. set #万=1000
  16. set #亿=1000
  17. for %%a in (%strr:千= %) do (
  18. set str=%%a
  19. set str=!str:万=千!
  20. set str=!str:亿=千!
  21. for /l %%i in (0,2,8) do (
  22.     set var=!str:~%%i,2!
  23.     if not "!var!"=="" (
  24.         if not "!var:~1!"=="" set /a m1=!var:~1!
  25.         set /a m2=!var:~,1!
  26.         if "!m1!"=="1" (
  27.             set /a n+=_!var:~,1!*#!var:~1!
  28.         ) else if "!m2!"=="1" (
  29.             set /a n+=#!var:~,1!+_!var:~1!
  30.         ) else (
  31.             set /a n+=_!var!
  32.         )
  33.         set m1=
  34.         set m2=
  35.     )
  36. )
  37. set nn=!nn!!n!
  38. set n=
  39. )
  40. echo,!nn!
  41. pause
复制代码
1

评分人数

TOP

返回列表