[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
练练手。基本思路是化小数为整数运算,得到结果后再恢复成小数。
不支持大数字运算。特别是乘法部分有待完善,需要考虑的成分的确太多了。可能有批漏之处
  1. @echo off&setlocal enabledelayedexpansion
  2. :begin
  3. set /p m=输入(q退出):
  4. if "!m!"=="q" goto :eof
  5. set /p n=输入:
  6. for /f "tokens=1,2 delims=." %%i in ("%m%") do set m1=%%j00&if not "%%j"=="" (set mm=%%i!m1:~0,2!) else set mm=%%i00
  7. for /f "tokens=1,2 delims=." %%i in ("%n%") do set n1=%%j00&if not "%%j"=="" (set nn=%%i!n1:~0,2!) else set nn=%%i00
  8. if "!mm:~0,1!"=="-" (set mm=!mm:~1!&set /a num=2!mm!-1!mm!,mm=1!mm!-num&set mm=-!mm!) else set /a num=2!mm!-1!mm!,mm=1!mm!-num
  9. if "!nn:~0,1!"=="-" (set nn=!nn:~1!&set /a num=2!nn!-1!nn!,nn=1!nn!-num&set nn=-!nn!) else set /a num=2!nn!-1!nn!,nn=1!nn!-num
  10. set /a add=mm+nn
  11. call :check !add! num1
  12. echo 两值之和是: !num1!
  13. set /a sub=mm-nn
  14. call :check !sub! num2
  15. echo 两值之差是: !num2!
  16. set /a mul=mm*nn
  17. if !mul! lss 100 (set num3=0.00) else (
  18. set mul=!mul:~0,-2!
  19. call :check !mul! num3
  20. )
  21. echo 其积为:!num3!
  22. set /a div=100*mm/nn
  23. call :check !div! num4
  24. echo 其商为:%num4%
  25. goto begin
  26. :check
  27. set var=%1&set "_="
  28. if !var! lss 0 (set /a var=-1*var&set _=-)
  29. if !var! lss 10 (set var=00!var!) else if !var! lss 100 set var=0!var!
  30. if "!var:~-2!"=="00" (set var=!var:~0,-2!) else if "!var:~-1!"=="0" (set var=!var:~0,-2!.!var:~-2,1!) else set var=!var:~0,-2!.!var:~-2!
  31. set %2=!_!!var!&goto :eof
复制代码

TOP

返回列表