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 25-05-2007
Avatar de CarlosHernandez
CarlosHernandez CarlosHernandez is offline
Miembro
 
Registrado: oct 2003
Posts: 139
Poder: 21
CarlosHernandez Va por buen camino
como saber si una cantidad es entera o decimal

hola de nuevo...

tengo un resultado de una operacion que al final necesito saber si es decima l o entero,

resultado=decimal;

o

resultado=entero;


esto lo hago con varios fines,
1. saber si voy a aplicar o no el FormatCurr('###,###,##0.00', resultado);

esa es la primordial porque si aplico ese formato a un numero entero me da error diciendome que no es un valor currency,


otra pregunta, no se si deba ir aqui es como hago para sumar solo los decimales de 2 cantidades

ejemplo


1,7
5,3

necesito que el resultado sea 2 y 5. y solo debo aplicarlo cuando sea decimal e alli otra razon mas de la pregunta inicial

gracias por la ayuda que me puedan brindar
__________________
begin
Elverdugo79@hotmail.com
end;
Responder Con Cita
  #2  
Antiguo 25-05-2007
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.557
Poder: 25
egostar Va camino a la fama
Hola Carlos

Podrias usar esto:

Código Delphi [-]
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
   Resultado := 1.7;
   Label1.Caption := Format('%7d',[round(Resultado)]);
   Resultado := 2;
   Label1.Caption := Format('%7d',[round(Resultado)]);
end;

Salud OS.
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #3  
Antiguo 25-05-2007
sinalocarlos sinalocarlos is offline
Miembro
 
Registrado: sep 2006
Posts: 152
Poder: 18
sinalocarlos Va por buen camino
Buenos Dias

No es que sea entrometido pero creo que lo que
pretende carlos seria algo asi como:

Código Delphi [-]
Cantidad:=1.7;

if (cantidad - trunc(cantidad)) > 0 then
    showmessage('Decimal')
else
    showmessage('Entero');

Estoy en lo correcto?
Responder Con Cita
  #4  
Antiguo 25-05-2007
Avatar de CarlosHernandez
CarlosHernandez CarlosHernandez is offline
Miembro
 
Registrado: oct 2003
Posts: 139
Poder: 21
CarlosHernandez Va por buen camino
ok gracias, con eso hago para redondear, y no hay una manera para sumar las 2 cantidades que es lo que necesito que haga..

Código:
 1,7
 5,3
____

es decir sumar los decimales de la suma

seria algo como sumar

1,7
0,3+
___
 2

y por supuesto el 5,3 queda 5, porque le resto el 0,3

5,3
0,3-
___
 5

como podria hacer eso?
por favor
__________________
begin
Elverdugo79@hotmail.com
end;
Responder Con Cita
  #5  
Antiguo 25-05-2007
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Pues creo que lo más directo para saber si un número es entero o no sería usar la función Frac:

Código Delphi [-]
if Frac(N) = 0 then
  ShowMessage('es entero')
else
  ShowMessage('no es entero')

Pero por otra parte me llama la atención que sea necesario hacer tal distinción. Si pongo

Código Delphi [-]
ShowMessage(FormatCurr('###,###,##0.00', 3));

no me marca ningún error.

// Saludos
Responder Con Cita
  #6  
Antiguo 25-05-2007
Avatar de CarlosHernandez
CarlosHernandez CarlosHernandez is offline
Miembro
 
Registrado: oct 2003
Posts: 139
Poder: 21
CarlosHernandez Va por buen camino
bueno roman a mi me da y me dice que no es un valor currency, y por eso no se que hacer.....
__________________
begin
Elverdugo79@hotmail.com
end;
Responder Con Cita
  #7  
Antiguo 25-05-2007
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
¿Podrías poner un poco más del código antes de

Código Delphi [-]
FormatCurr('###,###,##0.00', resultado);

Por ejemplo, ¿qué tipo de datos es la variable resultado y cómo le asignas un valor?

// Saludos
Responder Con Cita
  #8  
Antiguo 25-05-2007
Avatar de CarlosHernandez
CarlosHernandez CarlosHernandez is offline
Miembro
 
Registrado: oct 2003
Posts: 139
Poder: 21
CarlosHernandez Va por buen camino
total es el resultado de una multiplicacion y sumas de una tabla, aveces da un valor entero o decimal, y cuando lo quiero pasar a un edit para visualizarlo me da el error...


edit9.Text:= FormatCurr('###,###,##0.00', total);
__________________
begin
Elverdugo79@hotmail.com
end;
Responder Con Cita
  #9  
Antiguo 25-05-2007
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.557
Poder: 25
egostar Va camino a la fama
Cita:
Empezado por CarlosHernandez
ok gracias, con eso hago para redondear, y no hay una manera para sumar las 2 cantidades que es lo que necesito que haga..

Código:
 1,7
 5,3
____

es decir sumar los decimales de la suma

seria algo como sumar

1,7
0,3+
___
 2

y por supuesto el 5,3 queda 5, porque le resto el 0,3

5,3
0,3-
___
 5
como podria hacer eso?
por favor
Si te he entendido bien, trata con este código, espero que sea lo que requieres.

Código Delphi [-]
procedure TForm1.BitBtn1Click(Sender: TObject);
var
  Decimal,X,Y: real;
begin
  X := 1.7;
  Y := 5.3;
  Decimal := X + (Round(X) - X);
  Label1.Caption := FloattoStr(Decimal);
  Decimal := Y + (Round(Y) - Y);
  Label2.Caption := FloattoStr(Decimal);
end;

Salud OS.
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #10  
Antiguo 25-05-2007
Avatar de CarlosHernandez
CarlosHernandez CarlosHernandez is offline
Miembro
 
Registrado: oct 2003
Posts: 139
Poder: 21
CarlosHernandez Va por buen camino
eso es unos de los problemas, y el trafondo original (no se si deba ponerlo en otro hilo) es trabajar con porcentajes, busque informacion en foros pasados, y dan las misma formula que uso, regla de 3 o multiplicando por 0.algo (0.07 para el 7%).

subtotal=8178881

porcentaje=7,5
descuento=613416


y existen 2 forma de hacer un descuento en porcentaje, o coloco el porcentaje como tal, (7,5%) o coloco la cantidad monetaria 613416

regla de tres

Código:
si coloco el porcentaje y voy a calcular la cantidad monetaria a restar

descuento=porcentaje*subtotal/100;

total=8178881-613416,075
 
total=7565464,925

 
tambien puede ser

total=subtotal*0.075;
si coloco la cantidad monetaria a restar y deseo saber a que porcentaje me equivale eso

subtotal=8178881 100
descuento=613416 porcentaje=x




Código:
porcentaje=descuento*100/subtotal;
porcentaje=7,5

total=8178881-613416,075
 
total=7565465
es lo mismo pero los decimales que le quito a uno se lo suma al otro, y yo quiero que lo calcule de la segunda forma pero con el primer metodo no se si me explico, y por eso no se que hacer,
__________________
begin
Elverdugo79@hotmail.com
end;
Responder Con Cita
  #11  
Antiguo 25-05-2007
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
No se porque me parece que utilizando FormaFloat acabaría el problema, te pongo un ejemplo a ver si te sirve.

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var
x:Integer;
begin
x:=133;
Edit1.Text:=FormatFloat(',0.00',x);
end;

procedure TForm1.Button2Click(Sender: TObject);
var
x1: Double;
begin
x1:=1988.343;
Edit1.Text:=FormatFloat(',0.00',x1);
end;

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
  #12  
Antiguo 25-05-2007
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.557
Poder: 25
egostar Va camino a la fama
Me parece que el problema es de concepto, quieres quitar los decimales en el transcurso de la operación, pero lo que todos estamos comentando es que eso lo haces cuando ya tienes el resultado final y lo conviertes (redondeas).

Pienso que cualquiera de las respuestas anteriores te va a resultar satisfactoria.

Salud OS.
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #13  
Antiguo 26-05-2007
Avatar de CarlosHernandez
CarlosHernandez CarlosHernandez is offline
Miembro
 
Registrado: oct 2003
Posts: 139
Poder: 21
CarlosHernandez Va por buen camino
ok gracias a todos, voy a probar todas las opciones y despues les cuento que tal.....

saludos...
__________________
begin
Elverdugo79@hotmail.com
end;
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
Parte entera y decimal joanajj Varios 6 16-01-2008 07:51:09
funcion matematica que devuelva parte entera o decimal ingel SQL 2 28-03-2007 02:01:45
Saber cantidad de recursos que utiliza mi aplicación... Gabriel2 Varios 3 02-12-2005 13:00:46
Como Cambiar Una Cantidad Numerica En Una Cantidad En Letra AdIIX Varios 3 28-04-2005 21:45:23
Obtener parte entera, decimal repo Firebird e Interbase 3 07-10-2004 22:10:25


La franja horaria es GMT +2. Ahora son las 20:10: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