Hola.
Cita:
Empezado por Daniel2622
¿Por qué se utiliza el tipo de retorno "Double"?
|
A fin de obtener un resultado mas fidedigno.
Se podría declarar con un retorno de tipo entero, vg.:
Código Delphi
[-]
function SumaInt(const x, y: Integer): Integer;
var
i: Integer;
begin
Result := 0;
for i := 0 to y do
Result := Result + Trunc(pot(x, i) / fac(i) );
end;
Pero se pierden decimales por la división entera, ejemplificando: Si enviamos a la función
SumaInt como argumentos los valores 3 y 4 nos devuelve como resultado 15, cuando debería ser 16,375
Cita:
Empezado por Daniel2622
y ¿Para qué sirve el "StrToIntDef"?
|
La función
StrToIntDef convierte una cadena en un número entero y de no ser posible la conversión, devuelve el valor por defecto (segundo parámetro), ejemplo:
Código Delphi
[-]
var
n : Integer;
begin
n := StrToIntDef( 'xxx', 99 );
Caption := FloatToStr( n );
Usé esa función por que tu código toma los valores a convertir desde dos Edits y el usuario podría introducir un valor que no represente un número válido y por tanto elevar una excepción como sucedería en el caso de usar la función
StrToInt.
Por si desearas hacer comprobaciónes, te pongo dos ejemplos con distintos modos:
Código Delphi
[-]
...
var
n : Integer;
begin
try
n := StrToInt( Edit1.Text );
except on E: Exception do
ShowMessage(E.Message);
end;
end;
Código Delphi
[-]
var
n : Integer;
begin
if not TryStrToInt( Edit1.Text, n ) then
ShowMessage('Edit1 no contiene un entero válido');
Saludos