Comment arrondir un nombre entier?

Résolu
cs_djtinou Messages postés 7 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 24 mars 2010 - 24 mars 2010 à 15:07
f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 - 25 mars 2010 à 00:19
Bonjour j'ai un problème avec l'arrondissement.
Voilà je souhaite deux choses.
La première c'est de trouver le code le plus optimisé pour résoudre mon problème, moins il
y a de ligne, plus c'est rapide.

La deuxième c'est mon problème: c'est a dire que l'utilisateur pourra rentrer comme chiffre
soit 0,1,2,3,4,5,6,7,8,9. Quand il rentre le chiffre 0 ou 1 ou 2 ou 8 ou 9 je voudrais
que ca me retourne 0 et si c' est un 3 ou 4 ou 5 ou 6 ou 7 je voudrais que ca me retourne un 5.



Merci d'avance pour vos réponse j'espère avoir été clair dans mes explication :).
A voir également:

3 réponses

JulioDelphi Messages postés 2226 Date d'inscription dimanche 5 octobre 2003 Statut Membre Dernière intervention 18 novembre 2010 14
24 mars 2010 à 16:54
Bonjour,
(on dit un Arrondi pas un Arrondissement)
Utilise un TSpinEdit avec la valeur max à 9 pour être sûr que l'utilisateur n'entre pas un mauvais chiffre ou des lettres (comme ça 0 ligne de code) et si tu utilises un TEdit, alors penche toi sur le OnKeyPress qui interdit les autres touches que les chiffres, puis voici une fonction d'une ligne :

function RetourArrondi(const Chiffre: Integer): Integer;
begin
if Chiffre in [0,1,2,8,9] then Result:= 0 else Result:= 5;
end;

bye
3
cs_djtinou Messages postés 7 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 24 mars 2010
24 mars 2010 à 17:57
merci beaucoup j'aurais pas fait mieux
0
f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 37
25 mars 2010 à 00:19
c'est pas un arrondi c'est une convertion :

// 3 est le pivot
if V < 3 then 
  result := 0
else
  result := 5;


ou par table de convertion :
const
  CnvT : array[0..9] of integer = (0,0,0,5,5,5,5,5,5,5);
begin
  assert((V >= 0) and (V <=9), 'Error : Value range (0..9) out of limit '+IntToStr(V));
  result := CnvT[V];
end;
0
Rejoignez-nous