Ver Mensaje Individual
  #4 (permalink)  
Antiguo 19/08/2015, 15:48
leonardo_josue
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 10 meses
Puntos: 447
Respuesta: ROUND no realiza el redondeo

Hola metalfox6383:

Hace tiempo tuve un problema semejante y en realidad nunca pude encontrar el porqué, sin embargo tiene que ver con la asignación del valor a la variable en el mismo SELECT. Una posible solución es hacerlo en partes, es decir, primero asignar el valor a tu variable y después hacer el select, es decir, algo como esto:

Código:
SET @a := 992.7500;
SELECT @a, ROUND(@a * (1 + 18 / 100), 2) AS Total;
De esta manera desde la primera ejecución obtienes el valor correcto:

Código MySQL:
Ver original
  1. mysql> SET @a := 992.7500;
  2. Query OK, 0 rows affected (0.00 sec)
  3.  
  4. mysql> SELECT @a, ROUND(@a * (1 + 18 / 100), 2) AS Total;
  5. +----------+---------+
  6. | @a       | Total   |
  7. +----------+---------+
  8. | 992.7500 | 1171.45 |
  9. +----------+---------+
  10. 1 row in set (0.00 sec)

Haz la prueba y nos comentas, y si descubres el porqué sucede esto coméntalo en el foro para tenerlo en cuenta.

Saludos
Leo.