PDA

Ver la Versión Completa : Alguna funcion para redondear??


atapia
30-06-2007, 08:15:44
Disculpen,alguien sabe de alguna funcion q redonde una variable de tipo flotante a una cantidad de decimales deseada y cual es su formato???espero alguien sepa,me ahorraria una larga validacion.

Gregory Mazon
30-06-2007, 08:37:04
Intenta con la fusion RoundTo, debes de incluir la unidad Math

Spynosa
30-06-2007, 14:34:08
function Redondear(Numero:real; Decimales:integer):real;
var signo : integer;
begin
if Numero>=0 then
signo:= 1
else
signo:= -1;
if Decimales <>0 then
Result:= signo * Trunc((Abs(Numero)*Power(10,Decimales)) + 0.5) / Power(10,Decimales)
else
Result:= signo * Trunc((Abs(Numero)+ 0.5));
end;

Igualmente tienes que usar la unit Math

gabrielkc
30-06-2007, 18:58:58
si es para mostrarla puedes usar:

Format('%f',[variable_float]);////2 decimales por default

Format('%.nf',[variable_float]);////n decimales


Solo asegurate que si es un valor con punto flotante, si tienes un entero te marca error, por seguridad yo siempre multiplico por 1.0:

Format('%f',[variable_float*1.0]);

PD:

dicha funcion te devuelve un string.

Perdon, no leí bien tu pregunta, luego de que la analice caí en cuenta de lo que querias.
Igual dejo la respuesta por si a alguien le sirve