Comment arrondir un nombre entier? [Résolu]

cs_djtinou 7 Messages postés dimanche 3 février 2008Date d'inscription 24 mars 2010 Dernière intervention - 24 mars 2010 à 15:07 - Dernière réponse : f0xi 4304 Messages postés samedi 16 octobre 2004Date d'inscription 9 mars 2018 Dernière intervention
- 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
JulioDelphi 2354 Messages postés dimanche 5 octobre 2003Date d'inscription 18 novembre 2010 Dernière intervention - 24 mars 2010 à 16:54
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

Merci JulioDelphi 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 89 internautes ce mois-ci

Commenter la réponse de JulioDelphi
cs_djtinou 7 Messages postés dimanche 3 février 2008Date d'inscription 24 mars 2010 Dernière intervention - 24 mars 2010 à 17:57
0
Merci
merci beaucoup j'aurais pas fait mieux
Commenter la réponse de cs_djtinou
f0xi 4304 Messages postés samedi 16 octobre 2004Date d'inscription 9 mars 2018 Dernière intervention - 25 mars 2010 à 00:19
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.