Foros del Web » Programando para Internet » PHP »

Problema resta de variables

Estas en el tema de Problema resta de variables en el foro de PHP en Foros del Web. Estoy intentando restar dos variables PHP una es una variable de SESSION Contiene un precio total $_SESSION['course_bt']['total'] La otra es una variable que coge de ...
  #1 (permalink)  
Antiguo 19/06/2013, 03:41
 
Fecha de Ingreso: noviembre-2010
Mensajes: 146
Antigüedad: 14 años
Puntos: 3
Problema resta de variables

Estoy intentando restar dos variables PHP una es una variable de SESSION

Contiene un precio total
$_SESSION['course_bt']['total']

La otra es una variable que coge de base de datos que contiene una cantidad tambien. en este caso la cantidad es 10.00

esta es la resta
$_SESSION['course_bt']['total']=$_SESSION['course_bt']['total']-$existe['cantidad']


Con cifras del tipo 599.25 = 599.25 - 10 FUNCIONA
El problema viene cuando tengo cifras como 1,255.00 - 1,255.00 - 10 que me devuelve -9

Alguien sabe que debo hacer para que me reconozca bien los formatos de numero. Gracias
  #2 (permalink)  
Antiguo 19/06/2013, 03:43
Avatar de repara2  
Fecha de Ingreso: septiembre-2010
Ubicación: München
Mensajes: 2.445
Antigüedad: 14 años, 2 meses
Puntos: 331
Respuesta: Problema resta de variables

http://www.php.net/manual/es/languag...es.typecasting
__________________
Fere libenter homines, id quod volunt, credunt.
  #3 (permalink)  
Antiguo 19/06/2013, 03:50
 
Fecha de Ingreso: noviembre-2010
Mensajes: 146
Antigüedad: 14 años
Puntos: 3
Respuesta: Problema resta de variables

Sabrias decirme que formato es el que tengo que coger exactamente porque no entiendo muy bien cual tengo que convertir :S


Gracias
  #4 (permalink)  
Antiguo 19/06/2013, 04:19
 
Fecha de Ingreso: noviembre-2010
Mensajes: 146
Antigüedad: 14 años
Puntos: 3
Respuesta: Problema resta de variables

Las dos variables son de tipo string y no consigo convertirlas a un formato en que me las reste bien :(

No se porque se me pasan siemple a tipo double el 10 queda siendo 10 pero la cantidad que es por ejemplo 1,527.25 se me queda en 1

Última edición por dierrytacato; 19/06/2013 a las 04:24
  #5 (permalink)  
Antiguo 19/06/2013, 04:38
Avatar de repara2  
Fecha de Ingreso: septiembre-2010
Ubicación: München
Mensajes: 2.445
Antigüedad: 14 años, 2 meses
Puntos: 331
Respuesta: Problema resta de variables

Si tus variables contienen comas entonces tienes que forzar a float, si no, puedes utilizar integer.
__________________
Fere libenter homines, id quod volunt, credunt.
  #6 (permalink)  
Antiguo 19/06/2013, 04:45
 
Fecha de Ingreso: noviembre-2010
Mensajes: 146
Antigüedad: 14 años
Puntos: 3
Respuesta: Problema resta de variables

fuerzo a float y me dice que la variable es de tipo double y no me coge bien la cantidad
  #7 (permalink)  
Antiguo 19/06/2013, 06:01
Avatar de repara2  
Fecha de Ingreso: septiembre-2010
Ubicación: München
Mensajes: 2.445
Antigüedad: 14 años, 2 meses
Puntos: 331
Respuesta: Problema resta de variables

No conozco tu proyecto ni tu código, prueba con integer pero perderás precisión, si no te funciona, intenta cambiar el contenido de las variables con expresiones regulares, sprintf o similar. Salu2
__________________
Fere libenter homines, id quod volunt, credunt.
  #8 (permalink)  
Antiguo 19/06/2013, 07:05
 
Fecha de Ingreso: noviembre-2010
Mensajes: 146
Antigüedad: 14 años
Puntos: 3
Respuesta: Problema resta de variables

Pruebo con integer pero me pasa lo mismo cuando tengo en la variable un numero que tiene el formato "1,253.35" no me coge el numero completo, sino que solo me coge el "1" :(
  #9 (permalink)  
Antiguo 19/06/2013, 07:51
 
Fecha de Ingreso: noviembre-2010
Mensajes: 146
Antigüedad: 14 años
Puntos: 3
Respuesta: Problema resta de variables

Solucionado, el problema era la "," quitandola ya no hay ningun problema con la operacion!


Gracias

Etiquetas: resta, variables
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:31.