Delphi

Hola, tengo una consulta:
Estoy estudiando animación y vemos delpi, tengo que realizar una aplicación donde me permita hacer distintos cálculos (suma, resta, división y multiplicación), el cual la operación y el resultado del calculo deben quedar en un ListBox, osea que se vea Ej: 4+5=9.
Pero por ejemplo en los caso de las divisiones no siempre los resultados son enteros así que necesitaría que me de con decimales, ej: ahora en esta operación 24/5=5
Y necesitaría que me de 4.8
Mi interfaz es así:
----------------------------------------------------------------------------------------------
procedure TForm1.Cociente1Click(Sender: TObject);
var
x,y,z: integer;
begin
  x:= StrToInt(edit1.Text);
  y:= StrToInt(edit2.Text);
  z:=x div y;
Listbox1.Items.Add(Edit1.Text + ' / ' + Edit2.Text + ' = ' + FloatToStr (z  ) ) ;
end;
end.
------------------------------------------------------------------------------
¿En qué parte podría agregar el formatfloat para que me de con un decimal?
Desde ya muchas gracias...

1 respuesta

Respuesta
1
ListBox1. Items. Add(
  format('%f',[
    StrToInt(Edit1.Text) / StrToInt(Edit2.text)
  ])
);
Si solo quieres 1 decimal, también podrías utilizar:
ListBox1. Items. Add(
  FloatToStrF(
    StrToInt(Edit1.Text) / StrToInt(Edit2.text), ffFixed, 10,1
  )
);
Una última alaración... Como el resultado podría ser entero o decimal, lo ideal sería condicionar el número de decimales:
var Resultado: Real;
      Decimales: Integer;
[...]
Resultado := StrToInt(Edit1.Text) / StrToInt(Edit2.text);
if Resultado =  StrToInt(Edit1.Text) div StrToInt(Edit2.text) then Decimales := 0
else Decimales := 1;
ListBox1.Items.Add(
  FloatToStrF(
    Resultado, ffFixed, Length(FloatToStr(Resultado)), Decimales
  )
);

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas