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

Campo númerico, tengo una duda

Estas en el tema de Campo númerico, tengo una duda en el foro de Mysql en Foros del Web. Buenas tengo una duda, en un campo que va a ser numérico, que tendrá tres decimales y pueden ser tambien números negativos, es decir puede ...
  #1 (permalink)  
Antiguo 26/09/2008, 13:08
 
Fecha de Ingreso: agosto-2006
Mensajes: 173
Antigüedad: 17 años, 7 meses
Puntos: 1
Campo númerico, tengo una duda

Buenas tengo una duda, en un campo que va a ser numérico, que tendrá tres decimales y pueden ser tambien números negativos, es decir puede contener por ejemplo 1,175 ó -1,175, que tipo le pongo, he probado con Varchar y Float pero no lo consigo que quede bien, alguna sugerencia

Muchas gracias por vuestra colaboracion
  #2 (permalink)  
Antiguo 26/09/2008, 13:28
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Campo númerico, tengo una duda

DECIMAL o FLOAT.
El problema de la representación lo debes resolver con funciones, para evitar problemas con la cantidad de dígitos.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 26/09/2008, 13:57
 
Fecha de Ingreso: agosto-2006
Mensajes: 173
Antigüedad: 17 años, 7 meses
Puntos: 1
Respuesta: Campo númerico, tengo una duda

puedo formatear el numero para que solo me salgan tres digitos, gracias probare y te comento
  #4 (permalink)  
Antiguo 27/09/2008, 05:43
 
Fecha de Ingreso: agosto-2006
Mensajes: 173
Antigüedad: 17 años, 7 meses
Puntos: 1
Respuesta: Campo númerico, tengo una duda

Pues no me sale, si le introduce por ejemplo 1.75 me sale cuando hago la consulta 2 y me lo graba en base de datos como dos, no me acepta los decimales los convierte en no decimales
  #5 (permalink)  
Antiguo 28/09/2008, 02:13
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: Campo númerico, tengo una duda

txino_2,

tienes que vigilar varias cosas. Lo primero lo que te ha dicho gnzsoloyo. Debes poner un tipo FLOAT al campo y un tamaño adecuado. A ti podría valerte si vas a usar un número con dos decimales (y puede ser negativo) un tamaño 5,2, pero eso dependerá de la versión de MysQL.
Luego, una vez hecho eso, te recomendaría que hicieras la inserción directamente con MysQL
INSERT INTO tabla SET nombrecampo = -2.53

y para mostrar SELECT nombrecampo FROM tabla

Y si eso va bien, el problema debes tenerlo en otro lugar, es decir, en el programa que te sirve para cargar los datos y en el modo en que los pasas, pero lo primero es lo primero: crea ese campo FLOAT con ese tamaño y haz la prueba...
  #6 (permalink)  
Antiguo 28/09/2008, 10:03
 
Fecha de Ingreso: agosto-2006
Mensajes: 173
Antigüedad: 17 años, 7 meses
Puntos: 1
Respuesta: Campo númerico, tengo una duda

Lo he medio solucionado con varchar y añadiendo las cantidades con formulario, haciendo update en el campo cada vez que cambio la clasificacion, es rudimentario pero ademas de este problema no me salia el tema de la formula

http://www.forosdelweb.com/f18/opera...8/#post2595485

Muchas gracias por tu colaboracion y ayuda
  #7 (permalink)  
Antiguo 28/09/2008, 10:22
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: Campo númerico, tengo una duda

no me parece muy adecuado cargar un número decimal como varchar, aunque dices que te funciona. Realmente, deberías explicar el proceso que quieres llevar a cabo con datos concretos. Algo así como, cargo el número -2.45 que es la puntuación... luego hago una consulta y divido por 10, etc.
Aquí podríamos ayudarte con la parte de la base de datos, y en el foro PHP con el resto...

Pero, eso debes decidirlo tú mismo.
  #8 (permalink)  
Antiguo 28/09/2008, 15:31
 
Fecha de Ingreso: agosto-2006
Mensajes: 173
Antigüedad: 17 años, 7 meses
Puntos: 1
Respuesta: Campo númerico, tengo una duda

Quiero mediante php al actualizar con un formulario la base de datos, si en un select le digo acertado, que me sume en el campo un valor y si le digo fallo me lo reste

Ahora mismo estoy utilizando varchar por que acepta tambien numeros y como el calculo no lo hace directamente si no que lo introduzco yo pues si lo acepta, es que con float si le introducia un valor por ejemplo 2.5 automaticamente me ponia 3 no me respetaba el 2.5 es si poniendole como tamaño 10.0

Gracias
  #9 (permalink)  
Antiguo 28/09/2008, 23:36
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: Campo númerico, tengo una duda

tu primer problema es el tamaño 10.0. Eso no es un tamaño aceptable para un float. No sé qué versión utilizarás, pero el tamaño se pone mediante dos números separados por coma. El último representa el número de decimales, el primero el número total contando decimales, el punto, los demás números y el signo (no debe ser UNSIGNED). Así si quieres escribir números que vayan de 0.00 a 9.99 ó -9.99, el tamaño debe ser 5,2. Pruébalo así, y luego seguiremos corrigiendo lo demás.
  #10 (permalink)  
Antiguo 29/09/2008, 03:49
 
Fecha de Ingreso: agosto-2006
Mensajes: 173
Antigüedad: 17 años, 7 meses
Puntos: 1
Respuesta: Campo númerico, tengo una duda

Ok gracias ya lo he cambiado, sigue sin funcionar, la Versión MySQL es 5.0.51 y cuando le meto algun decimal me lo convierte directamente a no tener ningun decimal, no se que esta mal, lo he tenido que volver a poner en varchar por que si no es así cuando inserto un número decimal, que en mi caso podría ser desde -000.00 a 999.99 si inserto me pone la cifra siguiente, por ejemplo si quiero poner 1.25 el automaticamente me pone 2, lo he probado de mil formas y nada de nada, la única forma que me lo acepta es con varchar y ya te digo, que es por que no hago operaciones aritmeticas lo que hago es simplemente machacar y sustituir unos datos por otros.
  #11 (permalink)  
Antiguo 29/09/2008, 04:28
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: Campo númerico, tengo una duda

Para esos números el tamaño es, según creo, FLOAT (7,2), pero no lo pongas como UNSIGNED, claro.

inserta directamente desde MysqL

Mira el manual y mira este post antiguo, pero útil, concretamente la aportación de Genetix
http://www.forosdelweb.com/f86/probl...-mysql-208813/
  #12 (permalink)  
Antiguo 29/09/2008, 15:08
 
Fecha de Ingreso: agosto-2006
Mensajes: 173
Antigüedad: 17 años, 7 meses
Puntos: 1
Respuesta: Campo númerico, tengo una duda

Ahora si, poniendolo como decimal con 5,3 me hace lo que yo queria, de valor predeterminado le he puesto 001.000 y me lo acepta genial.

Muchas gracias, ahora haber si alguien me puede aclarar la duda del otro post

http://www.forosdelweb.com/f18/opera...8/#post2595485

Muchas gracias te añado karma que te lo mereces
  #13 (permalink)  
Antiguo 29/09/2008, 15:25
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: Campo númerico, tengo una duda

txino_2,
aquí sólo podremos ayudarte con la actualización del dato en tu base. Dinos qué quieres que haga según se adopte una u otra decisión y trataremos de ayudarte, pero no podremos decirte en este foro qué tienes que hacer con el PHP o el HTML. De todas formas, ahora sí podrás operar y actualizar el dato con operaciones...
  #14 (permalink)  
Antiguo 02/10/2008, 10:14
 
Fecha de Ingreso: agosto-2006
Mensajes: 173
Antigüedad: 17 años, 7 meses
Puntos: 1
Respuesta: Campo númerico, tengo una duda

Muchas gracias y perdon por tardar en contestarte, ahora estoy liado con el php haber si alguien en ese foro me puede hechar una mano
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 13:54.