He mejorado tu code, por no decir que lo he renovado casi todo...ahora puedes elegir el número de cifras decimales con las que quieres calcular la cifra...
Hice dos bat, pongo los dos, son iguales pero el primero muestra el progreso de calculo a partir de los 70 decimales y el segundo no muestra ningun progreso.
::Division con decimales by nhaalclkiemr
::Baseado en el code de kraszic
echo Calcula una division hasta
con numeros decimales
:main
set /p did=Introduce el dividendo:
set /p div=Introduce el divisor:
set /p max=Introduce el numero maximo de decimales
(por defecto 60
):
if "
%max%"==""
set max=60
if "
%max%"=="0"
set max=60
echo Error. Division por cero.
)
set /a divno0=
%did%/
%div% set /a mult1=
%divno0%*
%div% set /a resi0=
%did%-
%mult1% )
:a
if not "
%percent%"==""
set /a antpercent=
%percent% set /a percent=
%nu%*100/
%max% if not "
%antpercent%"=="
%percent%"
( )
call:func2
%%%temp2%%% %%%temp2%%% call:func3
%%%temp1%%%0 %%%temp3%%% :func1
set /a divno
%nu%=
%1/
%div% :func2
:func3
:sig
:funcion2
:sig2
call:funcion3
%%%%divno %%I%%%% )
:funcion3
:funcion7
:seguir
set decimal=
%decimal%%tmpvar% :exacto
if not "
%decimal%"==""
set decimal=.
%decimal% echo Resultado:
%divno0%%decimal%
::Division con decimales by nhaalclkiemr
::Baseado en el code de kraszic
echo Calcula una division hasta
con numeros decimales
:main
set /p did=Introduce el dividendo:
set /p div=Introduce el divisor:
set /p max=Introduce el numero maximo de decimales
(por defecto 30
):
if "
%max%"==""
set max=30
if "
%max%"=="0"
set max=30
echo Error. Division por cero.
)
set /a divno0=
%did%/
%div% set /a mult1=
%divno0%*
%div% set /a resi0=
%did%-
%mult1% )
:a
call:func2
%%%temp2%%% %%%temp2%%% call:func3
%%%temp1%%%0 %%%temp3%%% :func1
set /a divno
%nu%=
%1/
%div% :func2
:func3
:sig
:funcion2
:sig2
call:funcion3
%%%%divno %%I%%%% )
:funcion3
:funcion7
:seguir
set decimal=
%decimal%%tmpvar% :exacto
if not "
%decimal%"==""
set decimal=.
%decimal% echo Resultado:
%divno0%%decimal%
El código de los dos es lo mismo, en el primero añadí unas lineas poco importantes para obtener el progreso...
Si alguien no entiende el code que mire el manual de programación avanzada de SDC que explica muy bien el uso de funciones y del comando FOR en BATCH
Los hice bastante rápido y se pueden optimizar, y bastante, si alguien quiere optimizarlo que lo haga y lo ponga si kiere, la verdad yo lo hice bastante rápido...
Weno espero que os sirva...
Saludos