Fonction "Round" donne un résultat bizarre... [DELPHI] - Programmation
Marsh Posté le 05-03-2002 à 20:32:02
heu, en delphi, la fonction round accepte un argument je crois (nb de décimales)
tu devrai tenter de mettre cet argument a 0
Marsh Posté le 05-03-2002 à 20:40:20
Non, round n'accepte malheureusement aucun argument.
il arrondi à 0 décimales, mais un peu n'importe comment...
Marsh Posté le 05-03-2002 à 21:34:12
l'arrondi est logique
c'est l'arrondi "scientifique" et non monétaire.
Si decimale < .5 alors entier inferieur
Sinon si decimale > .5 alors entier superieur
Sinon si entier inferieur pair alors entier inferieur
Sinon entier superieur
c'est expliqué mieux que ça dans l'aide
pour ce que tu sembles vouloir, tu dois utiliser la fonction SimpleRoundTo je crois (n'existe que dans Delphi 6)
[jfdsdjhfuetppo]--Message édité par antp--[/jfdsdjhfuetppo]
Marsh Posté le 05-03-2002 à 21:48:21
antp a écrit a écrit : l'arrondi est logique c'est l'arrondi "scientifique" et non monétaire. Si decimale < .5 alors entier inferieur Sinon si decimale > .5 alors entier superieur Sinon si entier inferieur pair alors entier inferieur Sinon entier superieur c'est expliqué mieux que ça dans l'aide pour ce que tu sembles vouloir, tu dois utiliser la fonction SimpleRoundTo je crois (n'existe que dans Delphi 6) |
Merci pour ces explications, pour mon cas personnel je cherche à appliquer l'arrondi comptable et non l'arrondi scientifique, donc je l'ai dans le cul...
Et comme je suis sous Delphi 5 je l'ai une deuxième fois dans le cul
Bon ben j'vais m'faire une fonction d'arrondi alors
Marsh Posté le 06-03-2002 à 09:57:09
Bon ben voilà, j'ai fait comme ça :
Code :
|
Y avait peut-etre plus simple, mais bon ça marche
Marsh Posté le 06-03-2002 à 10:06:31
je crois qu'il y a plus simple et plus propre
ex de la fonction que j'ai dû faire pour un programme en Delphi 5 qui avait des problèmes d'arrondis et qui ne voulais pas compiler en Delphi 6 :
Code :
|
(inspiré de la fonction SimpleRoundTo ou RoundTo, je sais plus, de Delphi 6
le second paramètre donne le nombre de chiffres à garder après la virgule.
[jfdsdjhfuetppo]--Message édité par antp--[/jfdsdjhfuetppo]
Marsh Posté le 06-03-2002 à 10:39:18
Ben là tu peux utiliser ta fonction pour arrondir au nombre de décimales que tu veux, effectivement dans ce cas ta fonction est très pertinente.
Moi mon cas est très simple : J'ai un montant à 0 décimales en Euros, je veux le convertir en un montant à 0 décimales en dollar.
Je n'ai nul besoin, DANS LE CADRE PRECIS DE CETTE APPLI DE GESTION, de préciser le nombre de décimales, il sera TOUJOURS égal à 0
Ceci étant dit, avec ta permission, je conserve ton idée d'arrondi dans un coin de mes archives
A+
Marsh Posté le 06-03-2002 à 11:02:10
bhen mon idée d'arrondi vient du source des fonctions de Delphi 6 donc il ne m'appartient pas vraiment
enfin je l'ai quand même modifié pcq y avait un bug avec les nombres négatif, et l'arrondi ne se faisait pas exactement comme il fallait le faire avec l'Euro
Marsh Posté le 05-03-2002 à 20:23:12
Salut,
Si je fais un round d'une numérique valant 2.5, j'obtiens 2 et non 3 comme je le souhaiterais et comme ça semblerait logique (en tous cas dans la logique de l'arrondi financier)...
En fait, lorsque Delphi arrondi une valeur se trouvant exactement entre deux entiers, le résultat est toujours le nombre pair, allez donc savoir pourquoi
Dois-je me palucher l'arrondi à la mimine ou y-a-t'il un moyen de contourner ce problème afin d'obtenir un nombre arrondi correctement ?
Merci
A+
---------------
Nous ne sommes rien, nous n'allons vers rien. Profitons au moins du voyage !