Somme non arrondie dans un pied d'état [Access 97]
4 réponses
Dom
Bonjour,
Dans un pied d'état, j'ai une somme des différents montants de la section
détail. Les champs sont de type monétaire avec deux décimales. A priori, pas
de problèmes, mais..., car il y a un mais...
Quand dans la section détail, on n'a que des nombres avec des décimales se
terminant par 0 ou 5, le total affiché dans le pied d'état est
rigoureusement correct. En revanche, quand dans cette même section, on a des
nombres avec des décimales autres (1,2,3,4,6,7,8,9), le total affiché
diffère parfois d'un centime en plus ou en moins selon le cas avec le total
exact (calculé avec une bonne vieille machine à calculer doté d'un rouleau
chiffrier !). Parfois aussi, cela tombe pile-poil !
Ai-je la berlue ou suis-je tombé sur un bug d'Access ? On dirait qu'Access
(en tout cas la version 97) arrondit automatiquement les nombres dans un
total et selon une logique qui m'échappe quelque peu...
Est-ce quelqu'un fréquentant cet admirable forum pourrait m'éclairer ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Richard_35
Bonjour Dom,
Comment est calculé ton montant des lignes "détail" ? Ne serait-ce pas une multiplication d'une quantité par un prix unitaire, ou un truc du genre ? Si oui, quel est le format de ces 2 champs ?
A bientôt, Richard.
"Dom" a écrit dans le message de news: 46a1d22c$0$24676$
Bonjour,
Dans un pied d'état, j'ai une somme des différents montants de la section détail. Les champs sont de type monétaire avec deux décimales. A priori, pas de problèmes, mais..., car il y a un mais...
Quand dans la section détail, on n'a que des nombres avec des décimales se terminant par 0 ou 5, le total affiché dans le pied d'état est rigoureusement correct. En revanche, quand dans cette même section, on a des nombres avec des décimales autres (1,2,3,4,6,7,8,9), le total affiché diffère parfois d'un centime en plus ou en moins selon le cas avec le total exact (calculé avec une bonne vieille machine à calculer doté d'un rouleau chiffrier !). Parfois aussi, cela tombe pile-poil !
Ai-je la berlue ou suis-je tombé sur un bug d'Access ? On dirait qu'Access (en tout cas la version 97) arrondit automatiquement les nombres dans un total et selon une logique qui m'échappe quelque peu...
Est-ce quelqu'un fréquentant cet admirable forum pourrait m'éclairer ?
Merci d'avance et bon week-end.
Dominique
Bonjour Dom,
Comment est calculé ton montant des lignes "détail" ?
Ne serait-ce pas une multiplication d'une quantité par un prix unitaire, ou
un truc du genre ?
Si oui, quel est le format de ces 2 champs ?
A bientôt,
Richard.
"Dom" <83domlpntkg@noos.fr> a écrit dans le message de news:
46a1d22c$0$24676$79c14f64@nan-newsreader-05.noos.net...
Bonjour,
Dans un pied d'état, j'ai une somme des différents montants de la section
détail. Les champs sont de type monétaire avec deux décimales. A priori,
pas de problèmes, mais..., car il y a un mais...
Quand dans la section détail, on n'a que des nombres avec des décimales se
terminant par 0 ou 5, le total affiché dans le pied d'état est
rigoureusement correct. En revanche, quand dans cette même section, on a
des nombres avec des décimales autres (1,2,3,4,6,7,8,9), le total affiché
diffère parfois d'un centime en plus ou en moins selon le cas avec le
total exact (calculé avec une bonne vieille machine à calculer doté d'un
rouleau chiffrier !). Parfois aussi, cela tombe pile-poil !
Ai-je la berlue ou suis-je tombé sur un bug d'Access ? On dirait qu'Access
(en tout cas la version 97) arrondit automatiquement les nombres dans un
total et selon une logique qui m'échappe quelque peu...
Est-ce quelqu'un fréquentant cet admirable forum pourrait m'éclairer ?
Comment est calculé ton montant des lignes "détail" ? Ne serait-ce pas une multiplication d'une quantité par un prix unitaire, ou un truc du genre ? Si oui, quel est le format de ces 2 champs ?
A bientôt, Richard.
"Dom" a écrit dans le message de news: 46a1d22c$0$24676$
Bonjour,
Dans un pied d'état, j'ai une somme des différents montants de la section détail. Les champs sont de type monétaire avec deux décimales. A priori, pas de problèmes, mais..., car il y a un mais...
Quand dans la section détail, on n'a que des nombres avec des décimales se terminant par 0 ou 5, le total affiché dans le pied d'état est rigoureusement correct. En revanche, quand dans cette même section, on a des nombres avec des décimales autres (1,2,3,4,6,7,8,9), le total affiché diffère parfois d'un centime en plus ou en moins selon le cas avec le total exact (calculé avec une bonne vieille machine à calculer doté d'un rouleau chiffrier !). Parfois aussi, cela tombe pile-poil !
Ai-je la berlue ou suis-je tombé sur un bug d'Access ? On dirait qu'Access (en tout cas la version 97) arrondit automatiquement les nombres dans un total et selon une logique qui m'échappe quelque peu...
Est-ce quelqu'un fréquentant cet admirable forum pourrait m'éclairer ?
Merci d'avance et bon week-end.
Dominique
pgz
Bonjour.
Es-tu sûr que tes variables soient définies avec 2 décimales? Attention les monétaires en ont 4. Le format permet de n'en afficher que 2 mais la variable garde les 4. Du coup dans un addition, on peut récupérer un cent par ci, un cent par là. Si les valeurs de détails sont calculées, ajouter un round(..., 2), seule façon d'être sûr de n'avoir que 2 décimales. Je ne crois pas qu'il y ait là un bug d'access.
Bon courage, -- pgz
"Ce qui se conçoit mal s''''''''énonce péniblement et les mots pour le dire arrivent péniblement." - dicomoche.net _____________________________ pgz.conseil at orange.fr
Bonjour,
Dans un pied d'état, j'ai une somme des différents montants de la section détail. Les champs sont de type monétaire avec deux décimales. A priori, pas de problèmes, mais..., car il y a un mais...
Quand dans la section détail, on n'a que des nombres avec des décimales se terminant par 0 ou 5, le total affiché dans le pied d'état est rigoureusement correct. En revanche, quand dans cette même section, on a des nombres avec des décimales autres (1,2,3,4,6,7,8,9), le total affiché diffère parfois d'un centime en plus ou en moins selon le cas avec le total exact (calculé avec une bonne vieille machine à calculer doté d'un rouleau chiffrier !). Parfois aussi, cela tombe pile-poil !
Ai-je la berlue ou suis-je tombé sur un bug d'Access ? On dirait qu'Access (en tout cas la version 97) arrondit automatiquement les nombres dans un total et selon une logique qui m'échappe quelque peu...
Est-ce quelqu'un fréquentant cet admirable forum pourrait m'éclairer ?
Merci d'avance et bon week-end.
Dominique
Bonjour.
Es-tu sûr que tes variables soient définies avec 2 décimales? Attention les
monétaires en ont 4. Le format permet de n'en afficher que 2 mais la variable
garde les 4. Du coup dans un addition, on peut récupérer un cent par ci, un
cent par là.
Si les valeurs de détails sont calculées, ajouter un round(..., 2), seule
façon d'être sûr de n'avoir que 2 décimales.
Je ne crois pas qu'il y ait là un bug d'access.
Bon courage,
--
pgz
"Ce qui se conçoit mal s''''''''énonce péniblement et les mots pour le dire
arrivent péniblement." - dicomoche.net
_____________________________
pgz.conseil at orange.fr
Bonjour,
Dans un pied d'état, j'ai une somme des différents montants de la section
détail. Les champs sont de type monétaire avec deux décimales. A priori, pas
de problèmes, mais..., car il y a un mais...
Quand dans la section détail, on n'a que des nombres avec des décimales se
terminant par 0 ou 5, le total affiché dans le pied d'état est
rigoureusement correct. En revanche, quand dans cette même section, on a des
nombres avec des décimales autres (1,2,3,4,6,7,8,9), le total affiché
diffère parfois d'un centime en plus ou en moins selon le cas avec le total
exact (calculé avec une bonne vieille machine à calculer doté d'un rouleau
chiffrier !). Parfois aussi, cela tombe pile-poil !
Ai-je la berlue ou suis-je tombé sur un bug d'Access ? On dirait qu'Access
(en tout cas la version 97) arrondit automatiquement les nombres dans un
total et selon une logique qui m'échappe quelque peu...
Est-ce quelqu'un fréquentant cet admirable forum pourrait m'éclairer ?
Es-tu sûr que tes variables soient définies avec 2 décimales? Attention les monétaires en ont 4. Le format permet de n'en afficher que 2 mais la variable garde les 4. Du coup dans un addition, on peut récupérer un cent par ci, un cent par là. Si les valeurs de détails sont calculées, ajouter un round(..., 2), seule façon d'être sûr de n'avoir que 2 décimales. Je ne crois pas qu'il y ait là un bug d'access.
Bon courage, -- pgz
"Ce qui se conçoit mal s''''''''énonce péniblement et les mots pour le dire arrivent péniblement." - dicomoche.net _____________________________ pgz.conseil at orange.fr
Bonjour,
Dans un pied d'état, j'ai une somme des différents montants de la section détail. Les champs sont de type monétaire avec deux décimales. A priori, pas de problèmes, mais..., car il y a un mais...
Quand dans la section détail, on n'a que des nombres avec des décimales se terminant par 0 ou 5, le total affiché dans le pied d'état est rigoureusement correct. En revanche, quand dans cette même section, on a des nombres avec des décimales autres (1,2,3,4,6,7,8,9), le total affiché diffère parfois d'un centime en plus ou en moins selon le cas avec le total exact (calculé avec une bonne vieille machine à calculer doté d'un rouleau chiffrier !). Parfois aussi, cela tombe pile-poil !
Ai-je la berlue ou suis-je tombé sur un bug d'Access ? On dirait qu'Access (en tout cas la version 97) arrondit automatiquement les nombres dans un total et selon une logique qui m'échappe quelque peu...
Est-ce quelqu'un fréquentant cet admirable forum pourrait m'éclairer ?
Merci d'avance et bon week-end.
Dominique
Dom
Bonsoir,
Après moultes recherches, prises de têtes..., et du code trouvé ça et là, je pense avoir résolu mon problème. Je teste sur plusieurs bases pendant 15 jours, et dans tous les cas, je vous tiendrai informés.
Cordialement,
Dominique.
"Dom" a écrit dans le message de news: 46a1d22c$0$24676$
Bonjour,
Dans un pied d'état, j'ai une somme des différents montants de la section détail. Les champs sont de type monétaire avec deux décimales. A priori, pas de problèmes, mais..., car il y a un mais...
Quand dans la section détail, on n'a que des nombres avec des décimales se terminant par 0 ou 5, le total affiché dans le pied d'état est rigoureusement correct. En revanche, quand dans cette même section, on a des nombres avec des décimales autres (1,2,3,4,6,7,8,9), le total affiché diffère parfois d'un centime en plus ou en moins selon le cas avec le total exact (calculé avec une bonne vieille machine à calculer doté d'un rouleau chiffrier !). Parfois aussi, cela tombe pile-poil !
Ai-je la berlue ou suis-je tombé sur un bug d'Access ? On dirait qu'Access (en tout cas la version 97) arrondit automatiquement les nombres dans un total et selon une logique qui m'échappe quelque peu...
Est-ce quelqu'un fréquentant cet admirable forum pourrait m'éclairer ?
Merci d'avance et bon week-end.
Dominique
Bonsoir,
Après moultes recherches, prises de têtes..., et du code trouvé ça et là,
je pense avoir résolu mon problème. Je teste sur plusieurs bases pendant 15
jours, et dans tous les cas, je vous tiendrai informés.
Cordialement,
Dominique.
"Dom" <83domlpntkg@noos.fr> a écrit dans le message de news:
46a1d22c$0$24676$79c14f64@nan-newsreader-05.noos.net...
Bonjour,
Dans un pied d'état, j'ai une somme des différents montants de la section
détail. Les champs sont de type monétaire avec deux décimales. A priori,
pas de problèmes, mais..., car il y a un mais...
Quand dans la section détail, on n'a que des nombres avec des décimales se
terminant par 0 ou 5, le total affiché dans le pied d'état est
rigoureusement correct. En revanche, quand dans cette même section, on a
des nombres avec des décimales autres (1,2,3,4,6,7,8,9), le total affiché
diffère parfois d'un centime en plus ou en moins selon le cas avec le
total exact (calculé avec une bonne vieille machine à calculer doté d'un
rouleau chiffrier !). Parfois aussi, cela tombe pile-poil !
Ai-je la berlue ou suis-je tombé sur un bug d'Access ? On dirait qu'Access
(en tout cas la version 97) arrondit automatiquement les nombres dans un
total et selon une logique qui m'échappe quelque peu...
Est-ce quelqu'un fréquentant cet admirable forum pourrait m'éclairer ?
Après moultes recherches, prises de têtes..., et du code trouvé ça et là, je pense avoir résolu mon problème. Je teste sur plusieurs bases pendant 15 jours, et dans tous les cas, je vous tiendrai informés.
Cordialement,
Dominique.
"Dom" a écrit dans le message de news: 46a1d22c$0$24676$
Bonjour,
Dans un pied d'état, j'ai une somme des différents montants de la section détail. Les champs sont de type monétaire avec deux décimales. A priori, pas de problèmes, mais..., car il y a un mais...
Quand dans la section détail, on n'a que des nombres avec des décimales se terminant par 0 ou 5, le total affiché dans le pied d'état est rigoureusement correct. En revanche, quand dans cette même section, on a des nombres avec des décimales autres (1,2,3,4,6,7,8,9), le total affiché diffère parfois d'un centime en plus ou en moins selon le cas avec le total exact (calculé avec une bonne vieille machine à calculer doté d'un rouleau chiffrier !). Parfois aussi, cela tombe pile-poil !
Ai-je la berlue ou suis-je tombé sur un bug d'Access ? On dirait qu'Access (en tout cas la version 97) arrondit automatiquement les nombres dans un total et selon une logique qui m'échappe quelque peu...
Est-ce quelqu'un fréquentant cet admirable forum pourrait m'éclairer ?
Merci d'avance et bon week-end.
Dominique
Dom
Bonjour,
Voici comment j'ai procédé :
1) Dans ma table principale (TERM avec 5111 enregistrements) création de 3 champs numériques,réel double, sans format, avec 2 décimales. Test1 Test2 Test3 Le champ numérique (format monétaire, 2 décimales) qui contient les données s'appelle : DEBITS. Les données sont positives ou négatives
2) Création de requêtes Mise à jour à exécuter dans cet ordre
- UPDATE TERM SET TERM.Test1 = Int(Abs([DEBITS])); - UPDATE TERM SET TERM.Test1 = [Test1]*-1 WHERE (((TERM.DEBITS)<0)); - UPDATE TERM SET TERM.Test2 = [DEBITS]-[Test1]; - UPDATE TERM SET TERM.Test2 = [Test2]+0.001 WHERE (((TERM.Test2)>0)); - UPDATE TERM SET TERM.Test2 = [Test2]-0.001 WHERE (((TERM.Test2)<0)); - UPDATE TERM SET TERM.Test2 = Roundinf([Test2],"2");
'Fonction Roundif arrondi inférieur' Public Function Roundinf(n As Double, e As Long) As Double Roundinf = Fix((10 ^ e) * n) / (10 ^ e) End Function
- UPDATE TERM SET TERM.Test3 = [Test1]+[Test2] WHERE (((TERM.Test1)>0)); - UPDATE TERM SET TERM.Test3 = [Test1]+[Test2] WHERE (((TERM.Test1)<0));
3) Dans mon pied d'état, le champ "Total Général" est égal à : =Somme([Test3]) (au format monétaire), ce qui donne : 302 019 307,36 euros (et ce qui est rigoureusement exact !), alors que si je fais la somme du champ [DEBITS], j'obtiens 302 019 310,86 euros, soit un arrondi supérieur de 3,50 euros !!!
J'ai testé sur une bonne trentaine de bases, et à défaut d'être élégant, cela fonctionne :-)))
Cordialement,
Dominique
"Dom" a écrit dans le message de news: 46a4eb93$0$19751$
Bonsoir,
Après moultes recherches, prises de têtes..., et du code trouvé ça et là, je pense avoir résolu mon problème. Je teste sur plusieurs bases pendant 15 jours, et dans tous les cas, je vous tiendrai informés.
Cordialement,
Dominique.
"Dom" a écrit dans le message de news: 46a1d22c$0$24676$
Bonjour,
Dans un pied d'état, j'ai une somme des différents montants de la section détail. Les champs sont de type monétaire avec deux décimales. A priori, pas de problèmes, mais..., car il y a un mais...
Quand dans la section détail, on n'a que des nombres avec des décimales se terminant par 0 ou 5, le total affiché dans le pied d'état est rigoureusement correct. En revanche, quand dans cette même section, on a des nombres avec des décimales autres (1,2,3,4,6,7,8,9), le total affiché diffère parfois d'un centime en plus ou en moins selon le cas avec le total exact (calculé avec une bonne vieille machine à calculer doté d'un rouleau chiffrier !). Parfois aussi, cela tombe pile-poil !
Ai-je la berlue ou suis-je tombé sur un bug d'Access ? On dirait qu'Access (en tout cas la version 97) arrondit automatiquement les nombres dans un total et selon une logique qui m'échappe quelque peu...
Est-ce quelqu'un fréquentant cet admirable forum pourrait m'éclairer ?
Merci d'avance et bon week-end.
Dominique
Bonjour,
Voici comment j'ai procédé :
1) Dans ma table principale (TERM avec 5111 enregistrements) création de 3
champs numériques,réel double, sans format, avec 2 décimales.
Test1
Test2
Test3
Le champ numérique (format monétaire, 2 décimales) qui contient les données
s'appelle : DEBITS. Les données sont positives ou négatives
2) Création de requêtes Mise à jour à exécuter dans cet ordre
- UPDATE TERM SET TERM.Test1 = Int(Abs([DEBITS]));
- UPDATE TERM SET TERM.Test1 = [Test1]*-1 WHERE (((TERM.DEBITS)<0));
- UPDATE TERM SET TERM.Test2 = [DEBITS]-[Test1];
- UPDATE TERM SET TERM.Test2 = [Test2]+0.001 WHERE (((TERM.Test2)>0));
- UPDATE TERM SET TERM.Test2 = [Test2]-0.001 WHERE (((TERM.Test2)<0));
- UPDATE TERM SET TERM.Test2 = Roundinf([Test2],"2");
'Fonction Roundif arrondi inférieur'
Public Function Roundinf(n As Double, e As Long) As Double
Roundinf = Fix((10 ^ e) * n) / (10 ^ e)
End Function
- UPDATE TERM SET TERM.Test3 = [Test1]+[Test2] WHERE (((TERM.Test1)>0));
- UPDATE TERM SET TERM.Test3 = [Test1]+[Test2] WHERE (((TERM.Test1)<0));
3) Dans mon pied d'état, le champ "Total Général" est égal à :
=Somme([Test3]) (au format monétaire), ce qui donne : 302 019 307,36 euros
(et ce qui est rigoureusement exact !), alors que si je fais la somme du
champ [DEBITS], j'obtiens 302 019 310,86 euros, soit un arrondi supérieur de
3,50 euros !!!
J'ai testé sur une bonne trentaine de bases, et à défaut d'être élégant,
cela fonctionne :-)))
Cordialement,
Dominique
"Dom" <83domlpntkg@noos.fr> a écrit dans le message de news:
46a4eb93$0$19751$79c14f64@nan-newsreader-07.noos.net...
Bonsoir,
Après moultes recherches, prises de têtes..., et du code trouvé ça et là,
je pense avoir résolu mon problème. Je teste sur plusieurs bases pendant
15 jours, et dans tous les cas, je vous tiendrai informés.
Cordialement,
Dominique.
"Dom" <83domlpntkg@noos.fr> a écrit dans le message de news:
46a1d22c$0$24676$79c14f64@nan-newsreader-05.noos.net...
Bonjour,
Dans un pied d'état, j'ai une somme des différents montants de la section
détail. Les champs sont de type monétaire avec deux décimales. A priori,
pas de problèmes, mais..., car il y a un mais...
Quand dans la section détail, on n'a que des nombres avec des décimales
se terminant par 0 ou 5, le total affiché dans le pied d'état est
rigoureusement correct. En revanche, quand dans cette même section, on a
des nombres avec des décimales autres (1,2,3,4,6,7,8,9), le total affiché
diffère parfois d'un centime en plus ou en moins selon le cas avec le
total exact (calculé avec une bonne vieille machine à calculer doté d'un
rouleau chiffrier !). Parfois aussi, cela tombe pile-poil !
Ai-je la berlue ou suis-je tombé sur un bug d'Access ? On dirait
qu'Access (en tout cas la version 97) arrondit automatiquement les
nombres dans un total et selon une logique qui m'échappe quelque peu...
Est-ce quelqu'un fréquentant cet admirable forum pourrait m'éclairer ?
1) Dans ma table principale (TERM avec 5111 enregistrements) création de 3 champs numériques,réel double, sans format, avec 2 décimales. Test1 Test2 Test3 Le champ numérique (format monétaire, 2 décimales) qui contient les données s'appelle : DEBITS. Les données sont positives ou négatives
2) Création de requêtes Mise à jour à exécuter dans cet ordre
- UPDATE TERM SET TERM.Test1 = Int(Abs([DEBITS])); - UPDATE TERM SET TERM.Test1 = [Test1]*-1 WHERE (((TERM.DEBITS)<0)); - UPDATE TERM SET TERM.Test2 = [DEBITS]-[Test1]; - UPDATE TERM SET TERM.Test2 = [Test2]+0.001 WHERE (((TERM.Test2)>0)); - UPDATE TERM SET TERM.Test2 = [Test2]-0.001 WHERE (((TERM.Test2)<0)); - UPDATE TERM SET TERM.Test2 = Roundinf([Test2],"2");
'Fonction Roundif arrondi inférieur' Public Function Roundinf(n As Double, e As Long) As Double Roundinf = Fix((10 ^ e) * n) / (10 ^ e) End Function
- UPDATE TERM SET TERM.Test3 = [Test1]+[Test2] WHERE (((TERM.Test1)>0)); - UPDATE TERM SET TERM.Test3 = [Test1]+[Test2] WHERE (((TERM.Test1)<0));
3) Dans mon pied d'état, le champ "Total Général" est égal à : =Somme([Test3]) (au format monétaire), ce qui donne : 302 019 307,36 euros (et ce qui est rigoureusement exact !), alors que si je fais la somme du champ [DEBITS], j'obtiens 302 019 310,86 euros, soit un arrondi supérieur de 3,50 euros !!!
J'ai testé sur une bonne trentaine de bases, et à défaut d'être élégant, cela fonctionne :-)))
Cordialement,
Dominique
"Dom" a écrit dans le message de news: 46a4eb93$0$19751$
Bonsoir,
Après moultes recherches, prises de têtes..., et du code trouvé ça et là, je pense avoir résolu mon problème. Je teste sur plusieurs bases pendant 15 jours, et dans tous les cas, je vous tiendrai informés.
Cordialement,
Dominique.
"Dom" a écrit dans le message de news: 46a1d22c$0$24676$
Bonjour,
Dans un pied d'état, j'ai une somme des différents montants de la section détail. Les champs sont de type monétaire avec deux décimales. A priori, pas de problèmes, mais..., car il y a un mais...
Quand dans la section détail, on n'a que des nombres avec des décimales se terminant par 0 ou 5, le total affiché dans le pied d'état est rigoureusement correct. En revanche, quand dans cette même section, on a des nombres avec des décimales autres (1,2,3,4,6,7,8,9), le total affiché diffère parfois d'un centime en plus ou en moins selon le cas avec le total exact (calculé avec une bonne vieille machine à calculer doté d'un rouleau chiffrier !). Parfois aussi, cela tombe pile-poil !
Ai-je la berlue ou suis-je tombé sur un bug d'Access ? On dirait qu'Access (en tout cas la version 97) arrondit automatiquement les nombres dans un total et selon une logique qui m'échappe quelque peu...
Est-ce quelqu'un fréquentant cet admirable forum pourrait m'éclairer ?