Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Mostrar resultado sumas y multipliaciones en decimal

Estas en el tema de Mostrar resultado sumas y multipliaciones en decimal en el foro de PHP en Foros del Web. Hola, Tengo un panel donde contabilizo las entradas vendidas de cada tipo y en un campo almaceno el dinero neto que me llevo yo. Por ...
  #1 (permalink)  
Antiguo 14/01/2014, 17:22
Avatar de DCienfuegos  
Fecha de Ingreso: febrero-2009
Ubicación: Asturias
Mensajes: 195
Antigüedad: 15 años, 10 meses
Puntos: 3
Pregunta Mostrar resultado sumas y multipliaciones en decimal

Hola,

Tengo un panel donde contabilizo las entradas vendidas de cada tipo y en un campo almaceno el dinero neto que me llevo yo.

Por algun motivo que desconozco el resultado siempre me lo muestra con un entero, automaticamente me lo debe de redondear y no se porque. El campo en la sql esta en tipo decimal y el codigo en php es este:

Código:
// Procesar entradas
$id     = MySQLi_Real_Escape_String($dbh, $_SESSION["id_user"]);
$id2    = MySQLi_Real_Escape_String($dbh, $_POST['id']);
$e_e6  = MySQLi_Real_Escape_String($dbh, $_POST['e_6']);
$e_e8  = MySQLi_Real_Escape_String($dbh, $_POST['e_8']);
$e_e10  = MySQLi_Real_Escape_String($dbh, $_POST['e_10']);
$e_e12  = MySQLi_Real_Escape_String($dbh, $_POST['e_12']);
$e_evip  = MySQLi_Real_Escape_String($dbh, $_POST['e_vip']);
$suma = $e_e6 + $e_e8 + $e_e10 + $e_e12 + $e_evip;
$neto = ($e_e6 * 0.9) + ($e_e8 * 0.9) + ($e_e10 * 0.9) + ($e_e12 * 0.9) + ($e_evip * 0.9);
$final = number_format($neto, 2, ".", ",");

if ($id !== $id2) {
	header("Location: manage.php?msg_e=".base64_encode('Error de sincronización. Cierra tu sesión y vuelve a entrar.')); 
	exit;
};

// Actualizar valores
$query = "UPDATE `vendedores` SET `e_6` = '$e_e6', `e_8` = '$e_e8', `e_10` = '$e_e10', `e_12` = '$e_e12', `e_vip` = '$e_evip', `e_total` = '$suma' , `e_neto` = '$final'  WHERE `id` = '$id' LIMIT 1;";

A lo que me refiero es $neto, $final y el campo e_neto. ¿Ayuda?
  #2 (permalink)  
Antiguo 14/01/2014, 17:37
 
Fecha de Ingreso: julio-2013
Ubicación: México
Mensajes: 361
Antigüedad: 11 años, 4 meses
Puntos: 55
Respuesta: Mostrar resultado sumas y multipliaciones en decimal

Hola, guarda $neto, en lugar de $final.

La funcion number_format() es para dar un formato visible correcto, es posible que eso afecte el guardado en la BD.

Saludos.

Edito.
Sugerencia: Revisa las funciones de matematicas de precisión arbitrarias "BCMath", puede ser que las necesites.
  #3 (permalink)  
Antiguo 14/01/2014, 17:52
Avatar de DCienfuegos  
Fecha de Ingreso: febrero-2009
Ubicación: Asturias
Mensajes: 195
Antigüedad: 15 años, 10 meses
Puntos: 3
Respuesta: Mostrar resultado sumas y multipliaciones en decimal

Cita:
Iniciado por Erick_MD9 Ver Mensaje
Hola, guarda $neto, en lugar de $final.

La funcion number_format() es para dar un formato visible correcto, es posible que eso afecte el guardado en la BD.

Saludos.

Edito.
Sugerencia: Revisa las funciones de matematicas de precisión arbitrarias "BCMath", puede ser que las necesites.
Sigue redondeando y mostrando enteros, ya lo había probado..
  #4 (permalink)  
Antiguo 14/01/2014, 18:04
Avatar de DCienfuegos  
Fecha de Ingreso: febrero-2009
Ubicación: Asturias
Mensajes: 195
Antigüedad: 15 años, 10 meses
Puntos: 3
Respuesta: Mostrar resultado sumas y multipliaciones en decimal

Solucionado, me limite a no almacenarlo en la db y hacerlo con un echo y la multiplicacion, mas sencillo
  #5 (permalink)  
Antiguo 14/01/2014, 18:08
 
Fecha de Ingreso: julio-2013
Ubicación: México
Mensajes: 361
Antigüedad: 11 años, 4 meses
Puntos: 55
Respuesta: Mostrar resultado sumas y multipliaciones en decimal

ok.

Posibilidades:
1.- Revisa que el campo de tu tabla sea -->DECIMAL( 10, 2 )<-- el segundo parámetro indica la cantidad de decimales a guardar.

2.- quita esta funcion de la recepción de tus valores "MySQLi_Real_Escape_String" que hace esa funcion?

No veo más opciones de error.

Saludos

Etiquetas: decimal, mysql, resultado, sql, sumas
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 06:44.