¿Cómo redondear un real?

5269 vistas

Para redondear un real devemos usar la función SimpleRoundTo de la unir Math.

Ejemplo:


delphi
  1. showMessage(floatToStr(SimpleRoundTo(1.235,-2)));
  2.   // Mostrará 1.24



Si esta función no está disponible en vuestra versión de Delphi podéis usar esta función:



delphi
  1. uses
  2.   Math;
  3.  
  4. function Redondea(numero : extended ; nbDecim : integer) : extended;
  5. var
  6.   p10 : extended;
  7. begin
  8.   { 2 siendo el caso más frecuente, o el trato directo }
  9.   if (nbDecim = 2) then
  10.     result := round(numero * 100) / 100
  11.   else
  12.   begin
  13.     p10 := Power(10, nbDecim);
  14.     result := round(numero * p10) / p10;
  15.   end;
  16. end;



Ejemplos de uso:



delphi
  1. memo1.Lines.Add(FloatToStr(Redondea(12,2)));
  2. memo1.Lines.Add(FloatToStr(Redondea(13.59,1)));
  3. memo1.Lines.Add(FloatToStr(Redondea(0.1,5)));
  4. memo1.Lines.Add(FloatToStr(Redondea(0.14444444,3)));
  5. memo1.Lines.Add(FloatToStr(Redondea(1.5,0)));
  6. memo1.Lines.Add(FloatToStr(Redondea(1.54345678,1)));
  7. memo1.Lines.Add(FloatToStr(Redondea(1.54345678,2)));
  8. memo1.Lines.Add(FloatToStr(Redondea(1.54345678,3)));
  9. memo1.Lines.Add(FloatToStr(Redondea(1.54345678,4)));



Obteniendo:

12
13,6
0,1
0,144
2
1,5
1,54
1,543
1,5435