Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Coloboración Paypal con ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #24  
Antiguo 30-05-2015
Avatar de nlsgarcia
[nlsgarcia] nlsgarcia is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Caracas, Venezuela
Posts: 2.206
Poder: 23
nlsgarcia Tiene un aura espectacularnlsgarcia Tiene un aura espectacular
Chaja,

Cita:
Empezado por Chaja
...uso RoundTo...pero a veces me falla...cual es la rutina mas acertada para usar...ejemplo tengo una cifra que es 45,555 y si la redondo a dos me queda 45,55...


Revisa este código:
Código Delphi [-]
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Math;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

function RoundTo(F: single; D: integer): double;
var
   P : double;
begin
   P := Power(10, D);
   Result := Trunc(F * P + 0.5) / P;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
   N1, N2 : Double;
   MsgUsr : String;

begin

   N1 := 45.555;
   N2 := RoundTo(N1,2);

   MsgUsr := 'N1 (Valor Original) = %g ' + #13#10 + #13#10 + 'N2 (Valor redondeado a 2 decimales) = %g';

   MessageDlg(Format(MsgUsr,[N1,N2]),mtInformation,[mbOK],0);

   N1 := 3.1415927;
   N2 := RoundTo(N1,3);

   MsgUsr := 'N1 (Valor Original) = %g ' + #13#10 + #13#10 + 'N2 (Valor redondeado a 3 decimales) = %g';

   MessageDlg(Format(MsgUsr,[N1,N2]),mtInformation,[mbOK],0);


end;

end.
El código anterior en Delphi 7 sobre Windows 7 Professional x32, Permite realizar redondeos por exceso, como se muestra en la siguiente imagen:



Nota : La función de redondeo del ejemplo fue tomada de : Como redondear a partir del numero 5 .

Espero sea útil

Nelson.
Responder Con Cita
 



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
Como redondear un numero en un procedimiento en Firebird Gaby123 SQL 0 26-02-2007 18:25:26
Cómo Redondear a 4 decimales un campo de tipo Numérico vick Conexión con bases de datos 1 11-10-2005 01:04:23
Funcio para obtener las decimas de segundo enzo Varios 2 13-05-2005 01:06:11
Mostrar un Float como un hh:mm:ss rjsitruiz Impresión 2 04-07-2004 14:25:29


La franja horaria es GMT +2. Ahora son las 07:49:57.


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