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

Ayuda con redondeo de numero

Estas en el tema de Ayuda con redondeo de numero en el foro de Mysql en Foros del Web. Como estan tengo la siguiente consulta en una bases de datos MySQL select (Campo3/(Campo2/campo1)) from Atabla where Campo0='ABCDARIO'; esta consulta en algunas oportunidades me da ...
  #1 (permalink)  
Antiguo 16/03/2009, 14:48
 
Fecha de Ingreso: mayo-2006
Ubicación: Bogotá
Mensajes: 2.061
Antigüedad: 18 años, 6 meses
Puntos: 50
Ayuda con redondeo de numero

Como estan tengo la siguiente consulta en una bases de datos MySQL


select (Campo3/(Campo2/campo1))
from Atabla where Campo0='ABCDARIO';

esta consulta en algunas oportunidades me da un resultado como:

-41369983266487200.0000


Estos datos luego van a ser guardados en un campo decimal(18,4) de una tabla base de datos SQL Server


Como hago para redondiar este resultado para que siempre me de un valor que me quepa en este campo.


Gracias.
  #2 (permalink)  
Antiguo 16/03/2009, 14:53
Avatar de Genetix  
Fecha de Ingreso: febrero-2002
Ubicación: Lima - Perú
Mensajes: 1.600
Antigüedad: 22 años, 9 meses
Puntos: 45
Respuesta: Ayuda con redondeo de numero

Hola
En Mysql Sql usa ROUND() http://dev.mysql.com/doc/refman/5.0/...function_round

En Sql Server la funcion es igual ROUND()

Saludos!
__________________
"El conocimiento nos hace responsables."
twitter: @benjamingb
blog personal: http://codigolinea.com
ZF Manual en español http://manual.zfdes.com
  #3 (permalink)  
Antiguo 16/03/2009, 14:55
 
Fecha de Ingreso: mayo-2006
Ubicación: Bogotá
Mensajes: 2.061
Antigüedad: 18 años, 6 meses
Puntos: 50
Respuesta: Ayuda con redondeo de numero

gracias por responder el problema estaen que ya use round pero el lo unico que hace es limitarme los decimales a 4 pero como la cantidad de digitos no decimales superan los 14 permitidos en el campo me genera error como hago para forzarlo a que sean maximo 14 numeros no decimales "osea antes del punto" y 4 decimales. No importa que eso implique quitarle exactitud al numero o algo asi
  #4 (permalink)  
Antiguo 17/03/2009, 20: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: 17 años
Puntos: 2658
Respuesta: Ayuda con redondeo de numero

Hay dos formas de lograrlo:
1. Usando TRUNCATE, con el cual indicas la cantidad de decimales máximos que pondrá:
Código sql:
Ver original
  1. SELECT TRUNCATE (1234567890.123456,4);
El resultado es: 1234567890.1234. Si la cantidad de decimales es inferior a la indicada, rellena los espacios con ceros.

2. Usando FORMAT(numero,decimales), combinada con REPLACE.
Código SQL:
Ver original
  1. SELECT REPLACE(FORMAT(1234567890.123456,4),',','');
El resultado es: 1234567890.1235. Obviamente, está redondeando hacia arriba, y además el resultado se convierte en una cadena.
El uso de REPLACE es para eliminar los separadores de miles, ya que sin ello el resultado sería: 1,234,567,890.1235
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
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 22:55.