[Lazarus-es] Manejo de decimales

Francisco Javier Solis Palma fsolispa en gmail.com
Mar Jul 5 12:17:16 CEST 2011


Hola a toda la comunidad, tengo un problema, de acuerdo a una serie de 
parámetros tengo que poner o no decimales esto es
si el valor es igual a diez (10), no debe de tener valor decimal pero si 
es menor a este número debe de mostrarse los decimales incluso el cero
esto es si la cantidad es nueve (9) debe mostrarse 9.0, esto debe de ser 
pasando un formato a lazreport, realice el siguiente código pero me da error
  el código es el siguiente

procedure TModuloDatosFrm.frReport1UserFunction(const AName: String; p1, p2,
   p3: Variant; var Val: Variant);
var
   sdato: double;
   Entero: Double;
   Fraccion: Double;
begin
   If AName = 'FORMATO' Then
   Begin
     sdato:=frParser.Calc(P1);
     if sdato = 10 then
     Begin
        sdato := Int(sdato);
        Val:=Format('%n', [sdato]);
     End
     else
     Begin
       Entero := Int(sdato);
       Val:=format('%n', [Entero]);
       Fraccion := Frac(sdato);
       If Fraccion <> 0 Then
         Val := Val + Format('%d', [Fraccion])
       Else
         Val := Val + Format('%.1d', [Fraccion]);
     end;
   end;
end;

me da un erro que comenta que no se puede pasar el format index, como 
debo dejar el formato en lazreport, al compilarlo no me da error solo 
ala ejecutarlo no entiendo por que me da este error si alguien me puede 
ayudar, de antemano gracias




More information about the Lazarus-es mailing list