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

ROUND() en Function no redondea correctamente

Estas en el tema de ROUND() en Function no redondea correctamente en el foro de Mysql en Foros del Web. Hola tengo este problema que la verda no entiendo Tengo una funcion que me hace una triste multiplicacion pero debe redondearme a 2 decimales mas ...
  #1 (permalink)  
Antiguo 19/09/2012, 16:09
 
Fecha de Ingreso: enero-2012
Mensajes: 23
Antigüedad: 12 años, 5 meses
Puntos: 0
ROUND() en Function no redondea correctamente

Hola tengo este problema que la verda no entiendo
Tengo una funcion que me hace una triste multiplicacion pero debe redondearme a 2 decimales mas no lo hace pero cuando pruebo el comando ROUND() en consola de mysql si me redondea correctamente

les comparto mi function
Código MySQL:
Ver original
  1. DELIMITER $$
  2.  
  3. USE `saerp`$$
  4.  
  5. DROP FUNCTION IF EXISTS `calcularAFP`$$
  6.  
  7. CREATE DEFINER=`devsoft`@`%` FUNCTION `calcularAFP`(
  8.     sueldo DOUBLE(8,2)
  9.     /* Descripción:
  10.         Calcular el AFP del empleado
  11.     */
  12.    
  13.     -- Variables de tablas auxiliares
  14.     DECLARE porc_AFP DOUBLE(6,2) DEFAULT 0;
  15.    
  16.     -- Variables de procesos internos
  17.     DECLARE calculo DOUBLE(8,2) DEFAULT 0;
  18.    
  19.     -- Cálculos
  20.     SET porc_AFP = 6.25;
  21.        
  22.     SET calculo = ROUND((sueldo * (porc_AFP/100)),2);
  23.    
  24.     RETURN (calculo);
  25. END$$
  26.  
  27. DELIMITER ;

el sueldo que quiero que prueben es 250 y veran que debe dar 15.63 mas me lo deja como 15.62 porque???
  #2 (permalink)  
Antiguo 19/09/2012, 16:22
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 2 meses
Puntos: 300
Respuesta: ROUND() en Function no redondea correctamente

No estoy seguro, pero tal vez el tipo de campo (DECLARE calculo DOUBLE(8,2) DEFAULT 0;) es anterior al resultado del redondeo

qué ocurre si declaras DECLARE calculo DOUBLE(8,3) DEFAULT 0;

Lo digo por probar...

Lo demás quedaría igual
  #3 (permalink)  
Antiguo 19/09/2012, 17:18
 
Fecha de Ingreso: enero-2012
Mensajes: 23
Antigüedad: 12 años, 5 meses
Puntos: 0
De acuerdo Respuesta: ROUND() en Function no redondea correctamente

SOLUCIONADO!!!
tienes razon lo declaro de una vez con 2 decimales perooo tambien revisando y un buen amigo me ayudo y me dijo que el tipo de dato para usar la funcion ROUND() debe ser DECIMAL para que se redondee ya que con DOULBE no funciona el comando ROUND() lo digo porque ya lo probe asi que lo dejo aca por si otro tiene el mismo inconveniente esta fue mi solucion!

Etiquetas: function, redondear
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 03:37.