MySQL - Problema con %

   
Vista:
Imágen de perfil de Enrique Ramírez

Problema con %

Publicado por Enrique Ramírez (12 intervenciones) el 06/07/2010 03:38:47
Estoy calculando porcentajes con la siguiente formula:
((Cantidad*100)/Total)
El detalle es que el resultado me lo redondea y yo necesito que me de los decimales, el campo en la tabla lo he probado con tipo double y con tipo decimal y en ambos casos me lo redondea, ¿como le hago para que me de los decimales, ejemplo:

((27*100)/654) =9.93 y el resultado lo redondea a 10 pero yo necesito el 9.93
((65*100)/654) =4.12 y el resultado lo redondea 4 pero yo necesito el 4.12
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Problema con %

Publicado por Gonzalo GC (339 intervenciones) el 06/07/2010 04:27:05
No puede estar redondeándote un campo DECIMAL o DOUBLE a menos que el campo esté mal declarado; por lo demás, ese tipo de redondeos sólo se produce si ingresas esos datos en un campo entero.
Postea la sentencia de creación de la tabla para ver cómo está definido ese campo.
Y digo SENTENCIA DE CREACIÓN DE LA TABLA, NO UNA DESCRIPCIÓN DE LA MISMA, porque lo que quiero es ver como están definidos REALMENTE los campos, y no generalidades.
SI no posteas el "CREATE TABLE tabla(CAMPO INT, CAMPO2 char(X)..." NO ME SIRVE.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Enrique Ramírez

RE:Problema con %

Publicado por Enrique Ramírez (12 intervenciones) el 06/07/2010 15:35:20
Gracias por contestar, este el codigo de creación de la tabla, el campo donde se almacena el tanto por ciento se llama Porciento.

$sql = "CREATE TABLE `wPaso` (Folios INT(10) NOT NULL, "
. "DT VARCHAR(50) NOT NULL, "
. "FA INT(5) NOT NULL, "
. "Lm INT(5) NOT NULL, "
. "Ba INT(5) NOT NULL, "
. "TS INT(6) NOT NULL, "
. "Porciento DOUBLE(5) NOT NULL, "
. "AB INT(5) NOT NULL, "
. "CD INT(5) NOT NULL, "
. "EFINT(5) NOT NULL, "
. "GH INT(5) NOT NULL, "
. "HJ INT(5) NOT NULL, "
. "Total INT(6) NOT NULL) "
. " ENGINE = myisam ";
$res = mysql_query($sql,$conexion) or die (mysql_error());
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problema con %

Publicado por Gonzalo GC (339 intervenciones) el 06/07/2010 17:06:54
Estás declarando el campo sin decimales. Opera como un INT, por eso te lo redondea.
Ponle así:

CREATE TABLE `wPaso` (Folios INT(10) NOT NULL,
DT VARCHAR(50) NOT NULL,
FA INT(5) NOT NULL,
Lm INT(5) NOT NULL,
Ba INT(5) NOT NULL,
TS INT(6) NOT NULL,
Porciento DECIMAL(5,2) NOT NULL,
AB INT(5) NOT NULL,
CD INT(5) NOT NULL,
EFINT(5) NOT NULL,
GH INT(5) NOT NULL,
HJ INT(5) NOT NULL,
Total INT(6) NOT NULL) ENGINE = MySAM;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Enrique Ramírez

RE:Problema con %

Publicado por Enrique Ramírez (12 intervenciones) el 06/07/2010 17:20:01
Gonzalo, efectivamente esa fué mi error no declarar decimales, gracias de nuevo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar