Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros temas > Trucos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Los mejores trucos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 01-07-2006
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Procedimiento para redondear Euros

Código SQL [-]
/*
  Redondeo a 2 decimales, del modo que si el 3er. decimal es 5 ó mayor
  que 5, se aumenta en uno el 2º decimal, si no, se deja igual
*/

SET TERM ^ ;

CREATE PROCEDURE "REDONDEAR2"
("NUMERO" NUMERIC(14, 4))
RETURNS
("RESULTADO" NUMERIC(14, 2))
AS
  DECLARE VARIABLE TEMPNUM FLOAT;
  DECLARE VARIABLE SIGNO INTEGER;
  DECLARE VARIABLE PARTE_ENTERA INTEGER;
BEGIN
 NUMERO = NUMERO*1000;
 PARTE_ENTERA = NUMERO;
 TEMPNUM = MOD(PARTE_ENTERA,10);
 SIGNO = 1;
 IF (NUMERO < 0) THEN SIGNO = -1;
 IF (ABS(TEMPNUM) >= 5) THEN
   PARTE_ENTERA = (PARTE_ENTERA+(SIGNO*10));
 RESULTADO = PARTE_ENTERA/10;
 RESULTADO = RESULTADO/100;
 SUSPEND;
END ^
SET TERM ; ^
COMMIT WORK;

Me parece que el procedimiento esta bastante claro. Solo cabe señalar que hace uso de dos funciones UDF : ABS y MOD. Que estan incluidas en la libreria ib_udf.dll que viene con interbase.

Aunque este procedimiento solo realiza el redondeo a dos decimales, se puede modifocar facilmente para que lo realiza a tantos decimales como se quiera.
Responder Con Cita
Respuesta



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


La franja horaria es GMT +2. Ahora son las 08:53:45.


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