elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Únete al Grupo Steam elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  [Comando] Float.bat (Sumas y restas con decimales)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [Comando] Float.bat (Sumas y restas con decimales)  (Leído 4,028 veces)
LauBuru

Desconectado Desconectado

Mensajes: 37


Ver Perfil
[Comando] Float.bat (Sumas y restas con decimales)
« 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:

Código:
float xx,yy + xx,yy
float xx,yy - xx,yy

Este es el codigo resultante

Código
  1. @echo off
  2. set operador=%3
  3. for /f "tokens=*" %%a in ('set /a "operando1=%1,%2"') do ( set decimales1=%%a)
  4. for /f "tokens=*" %%b in ('set /a "operando2=%4,%5"') do (set decimales2=%%b)
  5. for /f "tokens=*" %%c in ('echo %1') do ( set entero1=%%c)
  6. for /f "tokens=*" %%d in ('echo %4') do ( set entero2=%%d)
  7. set /a RsEntero=%entero1% %operador% %entero2%
  8. set /a RsDecimal=%decimales1% %operador% %decimales2%
  9. if "^%operador%s" == "^+s" (goto sumar)
  10. if "^%operador%s" == "^-s" (goto restar)
  11.  
  12. :sumar
  13. if "100" GEQ "%RsDecimal%" (set /a "RsEntero=%RsEntero% + %RsDecimal:~0,1%")
  14. set "resultado=%RsEntero%,%RsDecimal%"
  15. echo %resultado%
  16. exit /b %resultado%
  17.  
  18. :restar
  19. if "%decimales1%" LSS "%decimales2%" (set "decimales1=1%decimales1%" & set /a "entero1=%entero1%-1" & goto uno)
  20. if "%decimales2%" LSS "%decimales1%" (set "decimales2=1%decimales2%" & set /a "entero2=%entero2%-1" & goto dos)
  21.  
  22. :uno
  23. set /a RsDecimal=%decimales1%- %decimales2%
  24. set /a RsEntero=%entero2%%operador%%entero1%
  25. set resultado=%RsEntero%,%RsDecimal%
  26. echo %resultado%
  27. exit /b %resultado%
  28.  
  29. :dos
  30. set /a RsDecimal=%decimales2%- %decimales1%
  31. set /a RsEntero=%entero2%%operador%%entero1%
  32. set resultado=-%RsEntero%,%RsDecimal%
  33. echo %resultado%
  34. exit /b %resultado%
  35.  
  36.  
  37.  
  38.  
  39.  
  40.  

Espero que os guste, un saludo gente


« Última modificación: 29 Junio 2010, 13:56 pm por LauBuru » En línea

69696969 start notepad.exe ::
leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
***
Desconectado Desconectado

Mensajes: 3.069


/^$/


Ver Perfil WWW
Re: [Comando] Float.bat (Sumas y restas con decimales)
« Respuesta #1 en: 29 Junio 2010, 02:48 am »

Muy bien, no lo he probado, pero supongo que funciona.



En línea

Código
  1. (( 1 / 0 )) &> /dev/null || {
  2. echo -e "stderrrrrrrrrrrrrrrrrrr";
  3. }
  4.  
http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com
LauBuru

Desconectado Desconectado

Mensajes: 37


Ver Perfil
Re: [Comando] Float.bat (Sumas y restas con decimales)
« Respuesta #2 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
En línea

69696969 start notepad.exe ::
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Duda, sumas en Python
Scripting
JUSTDOIT! 3 4,303 Último mensaje 6 Marzo 2011, 17:10 pm
por Shell Root
[BATCH] CALC: Sumas y restas con decimales
Scripting
Binary_Death 5 4,832 Último mensaje 24 Julio 2012, 22:32 pm
por AgnesBlack
Sumas de 32 bits con registros de 16
ASM
[Kayser] 4 6,500 Último mensaje 20 Enero 2013, 12:55 pm
por [Kayser]
Float no marca decimales
Programación C/C++
Vale_JCH 2 1,788 Último mensaje 16 Marzo 2019, 05:23 am
por EdePC
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines