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

处理大数
头两行加上了
修正一下亿位的处理,发现bug再修正
  1. @echo off&setlocal enabledelayedexpansion
  2. set/a "零=0,一=1,二=2,三=3,四=4,五=5,六=6,七=7,八=8,九=9,十=10,百=100,千=1000,万=10000,亿=100000"
  3. set "str=八十二亿零十"
  4. set "s=!str!
  5. if "!s:~16!" neq "" (set len=16&set "s=!s:~16!") else set len=0
  6. set "s=!s!fedcba9876543210"
  7. set /a "len+=0x!s:~16,1!,result=content=num=0"
  8. set "stry="
  9. for /l %%i in (0,1,!len!) do for /f %%j in ("!str:~%%i,1!") do (
  10.      if !%%j! geq 10 (
  11.         if !%%j! gtr 1000 (
  12.             if !%%j! gtr 10000 (
  13.               set /a stry=result+content+num,result=content=0"
  14.               set stry=!stry!00000000
  15.           )else set /a "content=(content+num)*%%j,result+=content,content=0"
  16.         ) else set /a "num+=^!num,content+=num*%%j"
  17.         set "num=0"
  18.      ) else if !%%j! neq 0 set num=!%%j!
  19. )
  20. set /a "result+=content+num
  21. if defined stry (
  22.    set "s1=!stry!fedcba9876543210"
  23.    set "s2=!result!fedcba9876543210"
  24.    set /a "len=0x!s1:~16,1!-0x!s2:~16,1!"
  25.    for /f %%i in ("!len!") do echo !str! "!stry:~,%%i!!result!"
  26. ) else echo;!str! !result!
  27. pause
复制代码

TOP

回复 22# Five66

已编辑

TOP

返回列表