练练手。基本思路是化小数为整数运算,得到结果后再恢复成小数。
不支持大数字运算。特别是乘法部分有待完善,需要考虑的成分的确太多了。可能有批漏之处- @echo off&setlocal enabledelayedexpansion
- :begin
- set /p m=输入(q退出):
- if "!m!"=="q" goto :eof
- set /p n=输入:
- 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
- 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
-
- 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
- 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
-
- set /a add=mm+nn
- call :check !add! num1
- echo 两值之和是: !num1!
-
- set /a sub=mm-nn
- call :check !sub! num2
- echo 两值之差是: !num2!
-
-
- set /a mul=mm*nn
- if !mul! lss 100 (set num3=0.00) else (
- set mul=!mul:~0,-2!
- call :check !mul! num3
- )
- echo 其积为:!num3!
-
- set /a div=100*mm/nn
- call :check !div! num4
- echo 其商为:%num4%
-
- goto begin
-
- :check
- set var=%1&set "_="
- if !var! lss 0 (set /a var=-1*var&set _=-)
- if !var! lss 10 (set var=00!var!) else if !var! lss 100 set var=0!var!
- 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!
- set %2=!_!!var!&goto :eof
复制代码
|