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


举个栗子:
  1. @echo off
  2. set "输入变量=44.1234560"
  3. ::要处理的数字
  4. set "kp=1"
  5. ::保留 1 位小数
  6. call :int %输入变量% 输出变量
  7. ::调用 :int 并将结果保存在 %输出变量% 中
  8. echo %输出变量%
  9. pause & exit
  10. :int 小数 输出变量
  11. setlocal enabledelayedexpansion
  12. set int=%~1.
  13. if not defined kp set kp=2
  14. if "%kp%"=="0" (set int=!int!0) Else for /l %%i in (1 1 %kp%) do set int=!int!0
  15. for /f "tokens=1,2,3 delims=." %%i in ("!int!") do (
  16. if not "%kp%"=="0" if %%j EQU 0 (endlocal&set %~2=%%i.%%j&goto :eof)
  17. echo !int!
  18. set pf=%%j
  19. set pfe=!pf:~0,1!
  20. set pfd=!pf:~0,%kp%!
  21. set pfc=!pf:~%kp%,1!
  22. if "!kp!"=="0" (
  23. if !pfe! GEQ 5 set /a result=%%i+1
  24. if !pfe! LSS 5 set /a result=%%i
  25. ) ELSE (
  26. if !pfc! GEQ 5 set /a tmp1=!pfd!+1
  27. if !pfc! LSS 5 set /a tmp1=!pfd!
  28. set result=%%i.!tmp1!
  29. )
  30. )
  31. endlocal&set %~2=%result%&goto :eof
复制代码

TOP

返回列表