Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 16-12-2010
ZiriusB ZiriusB is offline
Miembro
 
Registrado: oct 2010
Posts: 86
Poder: 14
ZiriusB Va por buen camino
Question Funcion de Redondeo

Buenas amigos, tengo un pequeño problema y nada mejor que esta comunidad para encontrar una solución, tengo esta formula que encontre en la web para el redondeo de un numero... pero me lanza un error en esta linea:

p10 := Power(10, cifrasSig);

el "Power" me lanza el error "Undeclarated identifier: Power"

esta es la formula completa; espero podais ayudarme!

Código Delphi [-]
function Redondear(numero : real ; cifrasSig : integer) : real;
  var p10 : extended;

begin

{ siendo 2 el caso más frecuente }
    if (cifrasSig = 2) then
      result := round(numero * 100) / 100
    else

      begin
        p10 := Power(10, cifrasSig);
        result := round(numero * p10) / p10;
      end;
end;
__________________
"Ningun precio es alto por el privilegio de ser uno mismo..."
Responder Con Cita
  #2  
Antiguo 16-12-2010
Avatar de rgstuamigo
rgstuamigo rgstuamigo is offline
Miembro
 
Registrado: jul 2008
Ubicación: Santa Cruz de la Sierra-Bolivia
Posts: 1.646
Poder: 17
rgstuamigo Va por buen camino
Arrow

Cita:
Empezado por ZiriusB Ver Mensaje
... pero me lanza un error en esta linea:

p10 := Power(10, cifrasSig);

el "Power" me lanza el error "Undeclarated identifier: Power"

...
Ya miraste la ayuda(F1) de Delphi sobre la Función Power?
El error que dices es por que no has agregado al Uses la unidad Math donde se encuentra la funcion Power
Código Delphi [-]
uses ...,Math;//<--agrego la unidad Math 
De todas formas creo que deberías comentar cómo quieres redondear, ya que delphi posee funciones que ya te hacen eso .
Saludos...
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7
Responder Con Cita
  #3  
Antiguo 16-12-2010
ZiriusB ZiriusB is offline
Miembro
 
Registrado: oct 2010
Posts: 86
Poder: 14
ZiriusB Va por buen camino
Red face

Bueno tengo varios combobox con numeros: 1,2,3,4 de ahi no pasan...al sumarlos todos me dan valores como 3,56 porque tengo una funcion que me divide el numero resultante entre el total de combobox...

Lo que quiero es redondear al numero mas cercano...es decir,

si el resultado es 3,78 que se vaya a 4

si el resultado es 3,27 que se vaya a 3

Gracias por tu ayuda, probare lo que me dijiste...
__________________
"Ningun precio es alto por el privilegio de ser uno mismo..."
Responder Con Cita
  #4  
Antiguo 16-12-2010
ZiriusB ZiriusB is offline
Miembro
 
Registrado: oct 2010
Posts: 86
Poder: 14
ZiriusB Va por buen camino
Wink

me funciono lo de la uses,

amigo como puedo hacer para que en el boton en donde meda el resultado se redondee de una vez, como puedo utilizar la formula ahi...disculpa mi ignorancia, soy nuevo en delphi!

Gracias por tu ayuda!
__________________
"Ningun precio es alto por el privilegio de ser uno mismo..."
Responder Con Cita
  #5  
Antiguo 16-12-2010
Avatar de rgstuamigo
rgstuamigo rgstuamigo is offline
Miembro
 
Registrado: jul 2008
Ubicación: Santa Cruz de la Sierra-Bolivia
Posts: 1.646
Poder: 17
rgstuamigo Va por buen camino
Arrow

Cita:
Empezado por ZiriusB Ver Mensaje
Lo que quiero es redondear al numero mas cercano...es decir,

si el resultado es 3,78 que se vaya a 4

si el resultado es 3,27 que se vaya a 3
...
Pues para eso tienes la funcion "Round" de la Unidad System.
Saludos...
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7
Responder Con Cita
  #6  
Antiguo 16-12-2010
ZiriusB ZiriusB is offline
Miembro
 
Registrado: oct 2010
Posts: 86
Poder: 14
ZiriusB Va por buen camino
me puedes mostrar por favor como podria utilizarla en mi TEDIT, como dije soy nuevo en delphi...

Disculpa la ignorancia y gracias por tu ayuda!
__________________
"Ningun precio es alto por el privilegio de ser uno mismo..."
Responder Con Cita
  #7  
Antiguo 16-12-2010
Avatar de rgstuamigo
rgstuamigo rgstuamigo is offline
Miembro
 
Registrado: jul 2008
Ubicación: Santa Cruz de la Sierra-Bolivia
Posts: 1.646
Poder: 17
rgstuamigo Va por buen camino
Pues usando el evento OnClick de un boton y teniendo un edit para meter los datos pues se puede hacer algo así:
Código Delphi [-]
procedure TForm1.Button2Click(Sender: TObject);
Var a : Double;
     b : Int64;
     c : String;
begin
    a:=StrToFloat(Edit1.Text);// Obtengo el valor Float del texto del Edit en mi varible "a"
    b:=Round(a);// Hago el redondeo y obtengo dicho valor en mi varible "b"
    c:=IntToStr(b);// hago la conversión de Entero a String
    ShowMessage(c);//muestro el valor redondeado final
end;

O así tambien(sin usar variables) >
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
begin
ShowMessage(IntToStr(Round(StrToFloat(Edit1.Text))));
end;
Saludos...
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Redondeo cesar vidal Varios 30 22-04-2014 22:01:29
redondeo pedrito1111 Varios 1 13-11-2009 01:40:23
Problema de Redondeo de Decimales con una Función agustibaldo Varios 19 10-11-2008 13:13:03
problemas de redondeo cacu OOP 1 30-01-2008 04:10:00
funcion de redondeo de decimales Rabata Varios 2 29-09-2003 02:41:39


La franja horaria es GMT +2. Ahora son las 23:23:01.


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