OVH Cloud OVH Cloud

Problème d'arrondi

27 réponses
Avatar
Paul Florent
Bonjour à tous.
Sous Access 2003
Dans une requête, j'ai des champs calculés :
MontantNetHT, MontantTVA
Je prends soin de mettre sur les 2 champs des Round(...;2)
Un autre champ calculé MontantTTC: MontantNetHT+MontantTVA
me renvoi certaines valeurs avec 14 décimales !
Je pourrais mettre un round dans le champ MontantTTC, mais ça ne convient
pas.
Je souhaite que le renvoi des 2 premiers champs ne comporte que 2 décimales
!

Je ne comprend pas le problème,
je pensais que "round" limitait bien au nombre de décimal souhaité.
J'ai essayé aussi arrond (je n'ai pas trouvé d'aide sur cette fonction)
j'ai Arrond(monCalcul*100)/100 pour obtenir 2 décimales
et là, ce sont d'autres valeurs qui ont les 14 décimales !!!

Que puis-je faire ?

Merci par avance pour votre aide

Paul

7 réponses

1 2 3
Avatar
Gilbert
--
Gilbert
Si ça colle, il a demandé : si j'ai 32.24, je souhaite 32.00



"Charles ERNST" a écrit dans le message de
news:
colle pas....., faut qu'il bascule à 1.13 par ex pour donner 1.25
le tien donne toujours 1... même à 1.19

"Laurent DUB" a écrit dans le message de
news:
Bonjour,
si je puis me permettre
Monarrondi=INT(Monchiffre*4)/4
Cordialement
LrD








Avatar
Gilbert
Chez moi ça donne 1.25 à partir de 1.26

--
Gilbert


"Charles ERNST" a écrit dans le message de
news:
colle pas....
à 1.13 ca donne 1
ca donne 1.25 à partir de 1.24


"Gilbert" a écrit dans le message de news:

Bonjour,

(Int((Valeur - 0.24) * 4) / 4) + 0.25

--
Gilbert


"Baptiste" a écrit dans le message
de news:
Bonjour

Je suis désolé de m'insérer dans ce sujet, mais je n'arrive pas à en
créer
un nouveau, il y a une erreur sur le chargement de la page, je ne
comprends
pas...
J'ai un souci d'arrondi aussi alors le mieux c'est d'en parler ici non?

C'est pas simple (enfin pour moi...)
J'ai des chiffres à décimale que je souhaite arrondir à 0.25 près
Soit, si j'ai 32.28, je souhaite obtenir 32.25, si j'ai 32.24, je
souhaite
32.00, si j'ai 32.58, je souhaite 32.5 ect...
Comment faire?!

Merci de votre aide

Baptiste










Avatar
Eric
ben si, il veut un arrondi à 0.25 par valeur inférieure donc ça marche.
en reprenant tes exemples :
Pour 1.13 --> 1
Pour 1.19 --> 1
pour 1.24 --> 1
pour 1.26 --> 1.25
Ceux du demandeur:
pour 32.24 --> 32
pour 32.28 --> 32.25
pour 32.58 --> 32.5

mais j'admets toutefois qu'on pouvait faire plus simple ;-)

semble pas coller....





--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr

Avatar
Gilbert
J'ai inversé mes 2 messages
Celui-ci c'était:

Chez moi ça donne 1.25 à partir de 1.26

--
Gilbert

--
Gilbert


"Gilbert" a écrit dans le message de news:



--
Gilbert
Si ça colle, il a demandé : si j'ai 32.24, je souhaite 32.00



"Charles ERNST" a écrit dans le message
de news:
colle pas....., faut qu'il bascule à 1.13 par ex pour donner 1.25
le tien donne toujours 1... même à 1.19

"Laurent DUB" a écrit dans le message de
news:
Bonjour,
si je puis me permettre
Monarrondi=INT(Monchiffre*4)/4
Cordialement
LrD












Avatar
Gilbert
J'ai inversé mes 2 messages
Celui-ci c'était:

Si ça colle, il a demandé : si j'ai 32.24, je souhaite 32.00


--
Gilbert


"Gilbert" a écrit dans le message de news:

Chez moi ça donne 1.25 à partir de 1.26

--
Gilbert


"Charles ERNST" a écrit dans le message
de news:
colle pas....
à 1.13 ca donne 1
ca donne 1.25 à partir de 1.24


"Gilbert" a écrit dans le message de news:

Bonjour,

(Int((Valeur - 0.24) * 4) / 4) + 0.25

--
Gilbert


"Baptiste" a écrit dans le message
de news:
Bonjour

Je suis désolé de m'insérer dans ce sujet, mais je n'arrive pas à en
créer
un nouveau, il y a une erreur sur le chargement de la page, je ne
comprends
pas...
J'ai un souci d'arrondi aussi alors le mieux c'est d'en parler ici non?

C'est pas simple (enfin pour moi...)
J'ai des chiffres à décimale que je souhaite arrondir à 0.25 près
Soit, si j'ai 32.28, je souhaite obtenir 32.25, si j'ai 32.24, je
souhaite
32.00, si j'ai 32.58, je souhaite 32.5 ect...
Comment faire?!

Merci de votre aide

Baptiste














Avatar
Laurent DUB
Re,
Je me permet d'insister:
dans la propriété source contrôle du champ:

1)
pour arrondir par défaut:
12.24 donne 12
12.12 donne 12
=Ent([texte0]*4)/4

2)
pour arrondir au plus proche:
12.13 donne 12.25
12.12 donne 12
=Round(([texte0]*4);0)/4

3)
pour arrondir par excès:
12.13 donne 12.25
12.12 donne 12.25
et 12.25 donne 12.25 mais 12.251 donne 12.5
=VraiFaux([texte0]=Ent([texte0]*4)/4;[texte0];(Ent([texte0]*4)+1)/4)

Voilà.
LrD
Avatar
Baptiste
Super ça marche...il manquait juste un int() mais l'idée est là, merci !

Function arrondi(UnNombre As Double) As Double
Dim pentier As Long, reste As Double
Dim pdecimale As Long
pentier = Int(UnNombre)
reste = UnNombre - pentier

ça marche si on rajoute Int() à la ligne suivante...

pdecimale = int((reste * 100) 25)
arrondi = pentier + pdecimale * 0.25
End Function
1 2 3