Comment arrondir un nombre entier? [Résolu]

Messages postés
7
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
24 mars 2010
- - Dernière réponse : f0xi
Messages postés
4200
Date d'inscription
samedi 16 octobre 2004
Statut
Modérateur
Dernière intervention
2 janvier 2019
- 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 :).
Afficher la suite 

3 réponses

Meilleure réponse
Messages postés
2226
Date d'inscription
dimanche 5 octobre 2003
Statut
Modérateur
Dernière intervention
18 novembre 2010
12
3
Merci
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

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 137 internautes nous ont dit merci ce mois-ci

Commenter la réponse de JulioDelphi
Messages postés
7
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
24 mars 2010
0
Merci
merci beaucoup j'aurais pas fait mieux
Commenter la réponse de cs_djtinou
Messages postés
4200
Date d'inscription
samedi 16 octobre 2004
Statut
Modérateur
Dernière intervention
2 janvier 2019
26
0
Merci
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;
Commenter la réponse de f0xi