Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 24-01-2004
Avatar de DarkByte
DarkByte DarkByte is offline
Miembro
 
Registrado: sep 2003
Ubicación: Desconocido
Posts: 1.322
Poder: 22
DarkByte Va por buen camino
Matemáticas: Calcular porcentaje

Hola amigos. Quiero saber un número que tanto porciento de otro es (ej. 25 es el 25% de 100), hasta ahora utilizo esto:
Código:
total.value * 100/ NumEnviar.value;
Pero me dice que ni en sueños, error de tipos Integer y Extended (¿Extended?). ¿Cómo podría hacer lo que quiero?
__________________
:)
Responder Con Cita
  #2  
Antiguo 24-01-2004
__cadetill __cadetill is offline
Miembro
 
Registrado: may 2003
Posts: 3.387
Poder: 25
__cadetill Va por buen camino
Hola DarkByte

Todo depende de qué numero cojas como referencia. Es decir, no es lo mismo el % de A sobre B que el % de B sobre A.

En tu ejemplo, 25 es el 25% de 100 si el valor base es 100, pero si es al rebés, que el valor base es el 25, resulta que 100 es el 400% de 25

Respecto al error que te da, seguramente será porque estas asignando el resultado de esa operación a una varable de tipo Integer, cuando el resultado de la operaicón / es un real. Cambia la definición de la variable o el operador (a div)
Responder Con Cita
  #3  
Antiguo 24-01-2004
Avatar de DarkByte
DarkByte DarkByte is offline
Miembro
 
Registrado: sep 2003
Ubicación: Desconocido
Posts: 1.322
Poder: 22
DarkByte Va por buen camino
El ejemplo que me refiero es el del 25% y no el 400 % ,el programa tiene que calcular el número de veces que se ha acertado la respuesta, adjunto algo del código:

eTotal = Edit : Contiene todas las preguntas formuladas
Veces1 = VrNum (Un componente que encontré que solo contiene números) = contiene las preguntas acertadas

Código:
var
Total : integer;
Porciento : integer;
begin
......
Total := strtoint(eTotal.Text);
......
Porciento := Veces1.value*100/Total;
Porcentaje.Caption := inttostr (Porciento)+"%";
__________________
:)
Responder Con Cita
  #4  
Antiguo 24-01-2004
__cadetill __cadetill is offline
Miembro
 
Registrado: may 2003
Posts: 3.387
Poder: 25
__cadetill Va por buen camino
Pues como veo, estás utilizando variables de tipo Integer, así que te remito a mi respuesta anterior

Cita:
Empezado por cadetill
Respecto al error que te da, seguramente será porque estas asignando el resultado de esa operación a una varable de tipo Integer, cuando el resultado de la operaicón / es un real. Cambia la definición de la variable o el operador (a div)
Responder Con Cita
  #5  
Antiguo 24-01-2004
Avatar de DarkByte
DarkByte DarkByte is offline
Miembro
 
Registrado: sep 2003
Ubicación: Desconocido
Posts: 1.322
Poder: 22
DarkByte Va por buen camino
Y cómo lo cambio a div?? me podrías arreglar el código??
__________________
:)
Responder Con Cita
  #6  
Antiguo 24-01-2004
__cadetill __cadetill is offline
Miembro
 
Registrado: may 2003
Posts: 3.387
Poder: 25
__cadetill Va por buen camino
Cita:
Empezado por DarkByte
Y cómo lo cambio a div?? me podrías arreglar el código??


Tan sencillo como esto:

Código:
var
  Total : integer;
  Porciento : integer;
begin
  ......
  Total := strtoint(eTotal.Text);
  ......
  Porciento := Trunc(Veces1.value) * 100 div Total;
  Porcentaje.Caption := inttostr (Porciento)+"%";
El trunc lo he puesto por si el componente devuelve un real y no tiene una propiedad estilo AsInteger
Responder Con Cita
  #7  
Antiguo 24-01-2004
Avatar de DarkByte
DarkByte DarkByte is offline
Miembro
 
Registrado: sep 2003
Ubicación: Desconocido
Posts: 1.322
Poder: 22
DarkByte Va por buen camino
Lo de div no sabía exactamente lo que era, no pensé que se sustituyese por /. ¡¡¡MUCHAS ASHIAS!!!
__________________
:)
Responder Con Cita
  #8  
Antiguo 25-01-2004
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Solamente aclarar que Div se utiliza para dividir enteros, no es lo mismo que / que se utiliza para enteros o reales aunque el resultado es real .

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #9  
Antiguo 25-01-2004
Avatar de DarkByte
DarkByte DarkByte is offline
Miembro
 
Registrado: sep 2003
Ubicación: Desconocido
Posts: 1.322
Poder: 22
DarkByte Va por buen camino
Gracias por la aclaración, hoy me acuesto sabiendo algo más .
__________________
:)
Responder Con Cita
  #10  
Antiguo 01-02-2004
Raptor Raptor is offline
No confirmado
 
Registrado: jul 2003
Ubicación: Santo Domingo R.D.
Posts: 105
Poder: 0
Raptor Va por buen camino
hola a todos los delphiano


Segun entiendo DarkByte lo que deseas saber , si el tiene 2 valores el resultado final y el inicial cual es porcentaje..

si es asi entonces la operacion es la siguete.

80/500 = 0.16
si lo lleva a porciento entonces :
0.16 * 100 = 16

espero haber ayudado...

suerte...

--[Dar es mejor que recibir]--
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 03:12:28.


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