Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Combobox (https://www.clubdelphi.com/foros/showthread.php?t=66748)

hernan35 10-03-2010 15:53:01

Combobox
 
Hola a todos.
Espero puedan sacarme una duda seguro que sencilla.
Quiero multiplicar dos elementos seleccionados, cada uno de ellos pertenecientes a un combobox. El producto resulta cuando los valores son númeos enteros, pero si tengo un número decimal ya no funciona.¿cómo se múltiplican los elementos del combobox1 y combobox2 si uno de ellos es decimal?
Desde ya muchas gracias.
saludos

Caro 10-03-2010 16:00:11

Hola hernan35, puedes manejar el tipo Currency:

Código Delphi [-]
var
 Total : Currency;
begin
 Total := StrToCurr(ComboBox1.Items[ComboBox1.ItemIndex])*StrToCurr(ComboBox2.Items[ComboBox2.ItemIndex]);

Saluditos

hernan35 10-03-2010 17:02:58

Gracias caro, lo voy a probar.

BrunoBsso 10-03-2010 17:06:31

Hola.
Si mal no recuerdo, StrToCurr te da los números con 2 decimales (currency, dinero, moneda). Si querés usar mas de 2 decimales usa StrToFloat que lo convierte a punto flotante (reales, double, single, extended, etc).
Saludos!

Softweb 10-03-2010 20:16:45

Cita:

Empezado por BrunoBsso (Mensaje 356393)
Hola.
Si mal no recuerdo, StrToCurr te da los números con 2 decimales (currency, dinero, moneda). Si querés usar mas de 2 decimales usa StrToFloat que lo convierte a punto flotante (reales, double, single, extended, etc).
Saludos!

Hola

ExactamenteStrToCurr da los decimales que tenga configurado el sistema operativo y que esta definido en la variable gloval CurrencyDecimals.

Si quieres que tu aplicación trabaje con tres decimales solo tienes que poner en el inicio de tu aplicación algo como:

CurrencyDecimals := 3;

y todo los formateo de las funciones y todo los controles mostraran 3 decimales en tu aplicación.

Saludos.

hernan35 10-03-2010 21:47:19

Cita:

Empezado por Caro (Mensaje 356387)
Hola hernan35, puedes manejar el tipo Currency:


Código Delphi [-]
var
Total : Currency;
begin
Total := StrToCurr(ComboBox1.Items[ComboBox1.ItemIndex])*StrToCurr(ComboBox2.Items[ComboBox2.ItemIndex]);





Saluditos




Hola nuevamente caro

Tu sintáxis es correcta pero se me presenta otro problema y es cuando quiero mostrar el resultado.

Edit1.text:=CurrToStr(Total);

¿esto es correcto?

gracias nuevamente y perdon por la molestia ocasionada.

Caro 10-03-2010 22:56:54

Cita:

Empezado por hernan35 (Mensaje 356477)
Hola nuevamente caro

Tu sintáxis es correcta pero se me presenta otro problema y es cuando quiero mostrar el resultado.

Edit1.text:=CurrToStr(Total);

¿esto es correcto?

Claro es correcto, estas convirtiendo de currency a String para mostrar en el Edit y no es ninguna molestía, pregunta todas las dudas que tengas ;).

Saluditos

BrunoBsso 11-03-2010 02:13:47

Cita:

Empezado por Softweb (Mensaje 356464)
Hola

ExactamenteStrToCurr da los decimales que tenga configurado el sistema operativo y que esta definido en la variable gloval CurrencyDecimals.

Si quieres que tu aplicación trabaje con tres decimales solo tienes que poner en el inicio de tu aplicación algo como:

CurrencyDecimals := 3;

y todo los formateo de las funciones y todo los controles mostraran 3 decimales en tu aplicación.

Saludos.

Si lo hubiese sabido antes... la cantidad de código que me hubiese ahorrado
:mad:
Pero bueno, tarde o temprano se aprende. Ya me solucionaste unas 5~10 líneas de código cada vez que necesite algo de este estilo.
Gracias!!!!!
Saludos!


La franja horaria es GMT +2. Ahora son las 04:33:59.

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