Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

¿Qué tipo de dato para guardar un precio con decimales?

Estas en el tema de ¿Qué tipo de dato para guardar un precio con decimales? en el foro de Mysql en Foros del Web. Hola buenas, resulta que estoy trabajando en php con un programa que maneja precios y éstos están con 2 decimales. Y estoy teniendo problemas al ...
  #1 (permalink)  
Antiguo 13/07/2007, 07:24
 
Fecha de Ingreso: abril-2004
Mensajes: 310
Antigüedad: 20 años
Puntos: 0
¿Qué tipo de dato para guardar un precio con decimales?

Hola buenas, resulta que estoy trabajando en php con un programa que maneja precios y éstos están con 2 decimales. Y estoy teniendo problemas al actualizar los precios de la base de datos usando precios de formato X.XX desde un formulario. No se guardan en el campo DEC (5,2) o FLOAT (5,2) de la BD, sólo me los guarda si los meto sin punto decimal (enteros) pero necesito que se puedan meter con el punto decimal ya que es un formulario que lee el valor de la BD (valor formato X.XX), lo muestra en el campo del formulario (editable por el usuario) y al enviar el formulario se enviará el mismo formato de dato para actualizar (X.XX). Pero no consigo que actualice correctamente. No le entran los números en formato decimal con punto.

Gracias y saludos!!
  #2 (permalink)  
Antiguo 13/07/2007, 07:39
Avatar de cala932  
Fecha de Ingreso: septiembre-2006
Ubicación: San Juan-Argentina
Mensajes: 902
Antigüedad: 17 años, 7 meses
Puntos: 9
Re: ¿Qué tipo de dato para guardar un precio con decimales?

HOla, prueba poniendo el campo como DOUBLE(5,2).
Saludos.
__________________
->Aprender es un proceso que incluye el error..
  #3 (permalink)  
Antiguo 13/07/2007, 07:40
 
Fecha de Ingreso: abril-2004
Mensajes: 310
Antigüedad: 20 años
Puntos: 0
Re: ¿Qué tipo de dato para guardar un precio con decimales?

Vale ya he visto el error. El tipo de dato parece correcto, DEC (5,2), pero fallaba una función que tenía por ahí que se me olvidó modificar, que me estaba evitando que se produjera la actualización del dato. Antes estaba usando valores enteros sólo y por ello tenía la siguiente función que lo chequeaba:

function verifEnt($valor,$signo=3){
if($signo==1)
$patron = "/^[0-9]*$/";
elseif($signo==2)
$patron = "/^-[0-9]*$/";
else
$patron = "/^(-|[0-9])[0-9]*[0-9]$/";

return preg_match($patron,$valor);
}

Tendré que modificarla para que me admita decimales, no sé cómo por cierto, que lo de expreciones regulares no lo controlo.

gracias!
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 04:51.