(Solucionado) [ Batch ] - Problema matemático con variables...

Iniciado por Eleкtro, 8 Noviembre 2011, 20:54 PM

0 Miembros y 1 Visitante están viendo este tema.

Eleкtro

Código (dos) [Seleccionar]
@echo off

Set Free_Space=129.30
Set NEW_Free_Space=129.60
Set Total=%NEW_Free_Space%

Set /a Total-=%Free_Space%

echo %NEW_Free_Space%-%Free_Space% = %total%
pause>nul


El problema es que siempre da "0", y además dice que falta el operador... (Si quito el punto "." funciona)

¿Como realizo esa operación?








Geormarsch

Cita de: EleKtro H@cker en  8 Noviembre 2011, 20:54 PM
Código (dos) [Seleccionar]
@echo off

Set Free_Space=129.30
Set NEW_Free_Space=129.60
Set Total=%NEW_Free_Space%

Set /a Total-=%Free_Space%

echo %NEW_Free_Space%-%Free_Space% = %total%
pause>nul


El problema es que siempre da "0", y además dice que falta el operador... (Si quito el punto "." funciona)

¿Como realizo esa operación?


Mira que quieres hacer

Free_Space=129.30
Set NEW_Free_Space=129.60
Set Total=%NEW_Free_Space%
set /a Total=%Free_Space%
rem aqui no puedes por que en la operacion no sumas ni restas nada.... no entiendo muy bien tu objetivo

set libre=1.024
set nuevolibre=1.143

echo %libre%-%nuevolibre%

"Comentar el código es como limpiar el cuarto de baño; nadie quiere hacerlo, pero el resultado es siempre una experiencia más agradable para uno mismo y sus invitados"

Eleкtro

#2
Cita de: geormarsch en  8 Noviembre 2011, 21:51 PM
rem aqui no puedes por que en la operacion no sumas ni restas nada.... no entiendo muy bien tu objetivo


Gracias pero creo que te has confundido...

Si que estoy restando, pero tu lo escriviste mal, fijate bien:

Código (dos) [Seleccionar]
Set /a Total-=%Free_Space%

el objetivo está claro, restar %NEW_Free_Space% - %Free_Space% y luego mostrar el resultado en la línea del echo :P

El problema es que el signo del punto "." me arruina la operación xD y no puedo cambiarlo.
saludos








leogtz

Batch no tiene soporte para operaciones con números flotantes.
Código (perl) [Seleccionar]

(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}

http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com

Eleкtro

Bueno entonces no le daré más vueltas :/ si no se puede, no se puede xD.

Saludos