Comment arrondir un nombre entier? [Résolu]

Messages postés
7
Date d'inscription
dimanche 3 février 2008
Dernière intervention
24 mars 2010
- - Dernière réponse : f0xi
Messages postés
4304
Date d'inscription
samedi 16 octobre 2004
Dernière intervention
9 mars 2018
- 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 

Votre réponse

3 réponses

Meilleure réponse
Messages postés
2354
Date d'inscription
dimanche 5 octobre 2003
Dernière intervention
18 novembre 2010
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 96 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
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
4304
Date d'inscription
samedi 16 octobre 2004
Dernière intervention
9 mars 2018
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

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.