Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 26-07-2007
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.671
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
Si no necesitas más de 2 decimales, entonces puedes guardar los datos redondeados a esos 2 decimales.
Responder Con Cita
  #2  
Antiguo 26-07-2007
Avatar de Ivanzinho
[Ivanzinho] Ivanzinho is offline
Miembro Premium
 
Registrado: ene 2005
Ubicación: Galicia
Posts: 595
Poder: 22
Ivanzinho Va por buen camino
Cita:
Empezado por Casimiro Notevi
Si no necesitas más de 2 decimales, entonces puedes guardar los datos redondeados a esos 2 decimales.
Es lo que hago yo y me funciona perfectamente.

Creé una UDF a la que le pasa un valor y el número de decimales a los que quieres que redondee.

Para tu caso la cosa quedaría así :
Código SQL [-]
Diferencia = Redondear(Debe - Haber, 2)

No tendrías que modificar ningún tipo de campo, sólo introducir la función en los cálculos criticos.

Un saúdo.
__________________
Si no lees esto no vivirás tranquilo
Non lle poñades chatas â obra namentras non se remata. O que pense que vai mal que traballe n’ela; hai sitio para todos. (Castelao)
Responder Con Cita
  #3  
Antiguo 26-07-2007
identsoft identsoft is offline
Miembro
 
Registrado: abr 2006
Posts: 288
Poder: 21
identsoft Va por buen camino
creo que la solucion está en guardar el debe y el haber ya redondeados a 2 decimales, no redodndear la diferencia.
Es decir
Diferencia = debe - haber
previamente :
debe = redondeo(Debe,2)
haber = redondeo(Haber,2)
La diferencia nunca puede tener más de dos decimales si previamente el debe y el haber tienen 2 decomales.
Responder Con Cita
  #4  
Antiguo 26-07-2007
Avatar de Ivanzinho
[Ivanzinho] Ivanzinho is offline
Miembro Premium
 
Registrado: ene 2005
Ubicación: Galicia
Posts: 595
Poder: 22
Ivanzinho Va por buen camino
Cita:
Empezado por identsoft
creo que la solucion está en guardar el debe y el haber ya redondeados a 2 decimales, no redodndear la diferencia.
Es decir
Diferencia = debe - haber
previamente :
debe = redondeo(Debe,2)
haber = redondeo(Haber,2)
La diferencia nunca puede tener más de dos decimales si previamente el debe y el haber tienen 2 decomales.
No llega con eso, ya que la ristra de decimales la introduce al realizar operaciones con los campos numéricos.

Un saúdo.
__________________
Si no lees esto no vivirás tranquilo
Non lle poñades chatas â obra namentras non se remata. O que pense que vai mal que traballe n’ela; hai sitio para todos. (Castelao)
Responder Con Cita
  #5  
Antiguo 26-07-2007
Avatar de jhonny
jhonny jhonny is offline
Jhonny Suárez
 
Registrado: may 2003
Ubicación: Colombia
Posts: 7.070
Poder: 32
jhonny Va camino a la famajhonny Va camino a la fama
Cita:
Empezado por Casimiro
Si no necesitas más de 2 decimales, entonces puedes guardar los datos redondeados a esos 2 decimales.
Yo también trato de hacer eso con la UDF que les mostré, pero asi le diga de antemano que guarde redondeado, al caer a la BD esta se "inventa" el resto de decimales, es mas hice una prueba, si voy por el ibexpert y le escribo los datos en dicho campo manualmente y redondeados, me sucede lo mismo (Luego aparecen los demás datos que nunca le he digitado).
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!"

http://www.purodelphi.com/
http://www.nosolodelphi.com/
Responder Con Cita
  #6  
Antiguo 26-07-2007
IVAND IVAND is offline
Miembro
 
Registrado: may 2003
Ubicación: ECUADOR
Posts: 531
Poder: 24
IVAND Va por buen camino
Me uno a lo de Jhonny aunque los guardes como los guardes es mas si haces una funcion en deplhi que sume debe-haber este arroja cero , pero el proceso de cuadre del diario esta en un SP , la base se "Inventa" esa manada de numeros raros ...... Trabajando juntos seguro encontramos una buena solucion o abra que manipular los fuentes ?
__________________
IVAND
Responder Con Cita
  #7  
Antiguo 26-07-2007
Avatar de Ivanzinho
[Ivanzinho] Ivanzinho is offline
Miembro Premium
 
Registrado: ene 2005
Ubicación: Galicia
Posts: 595
Poder: 22
Ivanzinho Va por buen camino
Para mi esto nunca fué un problema. Tanto a la hora de guardar como de leer lo hago siempre aplicando la función Redondear que comenté anteriormente. La utilizo en varias aplicaciones, entre ellas un gestor de imovilizado y una aplicación de contabilidad y nunca tuve problemas con los descuadres.

Un saúdo.
__________________
Si no lees esto no vivirás tranquilo
Non lle poñades chatas â obra namentras non se remata. O que pense que vai mal que traballe n’ela; hai sitio para todos. (Castelao)
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
No puedo hacer restore de una bdd firebird en delphi Gaby123 Conexión con bases de datos 2 30-01-2007 21:30:57
Problema en memoria al hacer restore en firebird garza Firebird e Interbase 0 20-09-2006 21:23:58
Hacer query con dos DB en FireBird El_Raso Firebird e Interbase 9 20-10-2005 17:19:37
como puedo hacer esto con mi FireBird 1.5 ELINK Firebird e Interbase 6 13-04-2005 20:30:46
Quisiera hacer mi propia instalacion de Firebird 1.0.3.972 christian Firebird e Interbase 1 06-07-2003 12:03:28


La franja horaria es GMT +2. Ahora son las 22:16:48.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi