Test Foro de elhacker.net SMF 2.1

Programación => Scripting => Mensaje iniciado por: LauBuru en 29 Junio 2010, 01:17 AM

Título: [Comando] Float.bat (Sumas y restas con decimales)
Publicado por: LauBuru en 29 Junio 2010, 01:17 AM
Con este script podremos sumar y restar con dos decimales por lo menos :) , el code funciona bastante bien, despues de bastantes errores en el algoritmo creo haberlo afinado haunque si veis errores en los resultados me gustaria que pusierais las cantidades con las que habeis operado para estudiar el comportamiento y corregir el algoritmo, bueno espero que os sirva

La sintasix seria por ejemplo:


float xx,yy + xx,yy
float xx,yy - xx,yy


Este es el codigo resultante

Código (dos) [Seleccionar]

@echo off
set operador=%3
for /f "tokens=*" %%a in ('set /a "operando1=%1,%2"') do ( set decimales1=%%a)
for /f "tokens=*" %%b in ('set /a "operando2=%4,%5"') do (set decimales2=%%b)
for /f "tokens=*" %%c in ('echo %1') do ( set entero1=%%c)
for /f "tokens=*" %%d in ('echo %4') do ( set entero2=%%d)
set /a RsEntero=%entero1% %operador% %entero2%
set /a RsDecimal=%decimales1% %operador% %decimales2%
if "^%operador%s" == "^+s" (goto sumar)
if "^%operador%s" == "^-s" (goto restar)

:sumar
if "100" GEQ "%RsDecimal%" (set /a "RsEntero=%RsEntero% + %RsDecimal:~0,1%")
set "resultado=%RsEntero%,%RsDecimal%"
echo %resultado%
exit /b %resultado%

:restar
if "%decimales1%" LSS "%decimales2%" (set "decimales1=1%decimales1%" & set /a "entero1=%entero1%-1" & goto uno)
if "%decimales2%" LSS "%decimales1%" (set "decimales2=1%decimales2%" & set /a "entero2=%entero2%-1" & goto dos)

:uno
set /a RsDecimal=%decimales1%- %decimales2%
set /a RsEntero=%entero2%%operador%%entero1%
set resultado=%RsEntero%,%RsDecimal%
echo %resultado%
exit /b %resultado%

:dos
set /a RsDecimal=%decimales2%- %decimales1%
set /a RsEntero=%entero2%%operador%%entero1%
set resultado=-%RsEntero%,%RsDecimal%
echo %resultado%
exit /b %resultado%







Espero que os guste, un saludo gente
Título: Re: [Comando] Float.bat (Sumas y restas con decimales)
Publicado por: leogtz en 29 Junio 2010, 02:48 AM
Muy bien, no lo he probado, pero supongo que funciona.

Título: Re: [Comando] Float.bat (Sumas y restas con decimales)
Publicado por: LauBuru en 29 Junio 2010, 10:45 AM
Hasta donde lo e testado funca, por eso añado que si encontrais alguna operacion que no da el resultado esperado me pongais las cifras para poder perfeccionarlo