SQLRound (rtl)

De Wiki1000
Version du 11 août 2009 à 16:18 par Syfre (discuter | contributions)
(diff) ← Version précédente | Voir la version courante (diff) | Version suivante → (diff)
Function SQLRound(D:Double; len:Integer):Double;

Cette fonction arrondie un nombre flottant suivant la même syntaxe que la fonction SQL ROUND.

Result Valeur arrondie.
D Valeur à arrondir
len Spécificateur de longueur.

Exemple

Implémentation de SQLRound

function SQLRound(f:double; len:Integer):double;
const fac:Array[0..8] of Extended = (1,10,100,1000,10000,100000,1000000,10000000,100000000);
begin
  //ROUND(748.58,-4)= 0
  //ROUND(748.58,-1)= 750.00
  //ROUND(748.58,-2)= 700.00
  //ROUND(748.58,-3)= 1000.00
  //ROUND(123.9994,3)= 123.9990
  //ROUND(123.9995,3)= 124.0000
  //
  if (len>=0) then
   begin
     if len>8 then len := 8;
     Result := Round(f*fac[len])/fac[len];
   end
   else
   begin
     len := -1*len;
     if len>8 then len := 8;
     Result := Round(f/fac[len])*fac[len];
   end;
end;

Voir aussi:

Développement DSMDéveloppement DSM

Outils personnels