被除数与除数可支持输入小数,没有进行过多的排错处理,CMD所能处理的最大数值等问题,依旧存在,代码也比较臃肿,初步测试无出错。欢迎赐教!~
@echo off&setlocal enabledelayedexpansion
:1
cls&for %%a in (numeric1 numeric2 xxx n1 n2 #1 #2 a b z zero c mod d x mo ) do set "%%a="
echo.&echo.&echo.&set/p numeric1= 输入被除数: &echo.&set/p numeric2= 输入除数:
echo.&set/p xxx= 输入要保留的小数点位数:
for %%a in (1 2) do echo !numeric%%a!|find ".">nul&&set n%%a=!numeric%%a:*.=!
for %%i in (1 2) do (
if defined n%%i (
for /l %%a in (0 1 10) do (
if "!n%%i:~%%a,1!" neq "" set #%%i=%%a
)
)
)
for %%a in (1 2) do if defined #%%a (set/a #%%a+=1) else set #%%a=0
if !#1! geq !#2! (
set/a z=!#1!-!#2!,a=%numeric1:.=%,b=%numeric2:.=%
) else (
set/a z=!#2!-!#1!,a=%numeric2:.=%,b=%numeric1:.=%
)
for /l %%a in (1 1 %z%) do set zero=!zero!0
set a=%a:.=%&set b=%b:.=%%zero%
if %a% lss %b% set a=%b%&set b=%a%
set/a c=a/b
:begin
set/a mod=a%%b
set a=%mod%0
set/a d=a/b
set/a x+=1
if %x% neq %xxx% (
set mo=!mo!%d%
goto begin
) else (
if %d% geq 5 (
set/a d+=1
set mo=!mo!!d!
)
)
:res
if %mo:~-1% equ 0 (
set mo=%mo:~,-1%
goto res
)
echo.&if defined mo (echo : %c%.%mo%) else echo : %c%
pause>nul&goto 1心绪平和,眼藏静谧,无比安稳的火... Purification of soul...Just a false...^_^
