Décimales parasites
Résolu/Fermé
dominique
-
5 juil. 2011 à 15:56
eriiic Messages postés 24571 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 8 mai 2024 - 7 juil. 2011 à 13:05
eriiic Messages postés 24571 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 8 mai 2024 - 7 juil. 2011 à 13:05
6 réponses
eriiic
Messages postés
24571
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
8 mai 2024
7 216
Modifié par eriiic le 6/07/2011 à 17:25
Modifié par eriiic le 6/07/2011 à 17:25
Bonjour,
Tu peux aussi sélectionner les cellules concernées (C:C) et les mettre au format 'Comptabilité' (et pas monétaire...) qui est étudié pour...
Il travaille en interne avec des entiers, et une virgule fixe à 4 décimales (non ce n'est pas antinomique ;-)).
Ce qui met à l'abri de toute erreur d'arrondi dûe au stockage interne des réels.
Avec ce format tu retrouves bien 1660.92 en C33 sans toucher aux formules
eric
Tu peux aussi sélectionner les cellules concernées (C:C) et les mettre au format 'Comptabilité' (et pas monétaire...) qui est étudié pour...
Il travaille en interne avec des entiers, et une virgule fixe à 4 décimales (non ce n'est pas antinomique ;-)).
Ce qui met à l'abri de toute erreur d'arrondi dûe au stockage interne des réels.
Avec ce format tu retrouves bien 1660.92 en C33 sans toucher aux formules
eric
Mytå
Messages postés
2973
Date d'inscription
mardi 20 janvier 2009
Statut
Contributeur
Dernière intervention
20 décembre 2016
943
5 juil. 2011 à 18:31
5 juil. 2011 à 18:31
Salut le forum
Une solution : Outils > Options > Calcul > Cocher Calcul avec la précision au format affiché
Mytå
Une solution : Outils > Options > Calcul > Cocher Calcul avec la précision au format affiché
Mytå
Raymond PENTIER
Messages postés
58423
Date d'inscription
lundi 13 août 2007
Statut
Contributeur
Dernière intervention
10 mai 2024
17 105
6 juil. 2011 à 04:33
6 juil. 2011 à 04:33
Non ! Tu fais erreur : Tes nombres n'ont pas tous 2 décimales.
Il suffit que l'un d'eux soit le résultat d'une opération (multiplication, division, extraction de racine, sinus, cosinus ...) pour que le résultat en mémoire comporte plus de 2 décimales.
Il ne faut pas que tu confondes avec la valeur affichée dans la cellule, qui peut être différente du nombre contenu dans la cellule ...
Il suffit que l'un d'eux soit le résultat d'une opération (multiplication, division, extraction de racine, sinus, cosinus ...) pour que le résultat en mémoire comporte plus de 2 décimales.
Il ne faut pas que tu confondes avec la valeur affichée dans la cellule, qui peut être différente du nombre contenu dans la cellule ...
Bonjour Raymond,
C'est bien ce que je ne comprends pas : Tous les montants saisis n'ont que 2 décimales et les seules fonctions utilisées sont des sommes : somme(); somme si(); + ; - .
Il n'y a aucune multiplication, sinus, etc.
Voici le copier/coller-valeur du dernier calcul, le résultat comptable étant la simple somme des 3 chiffres au dessus !!!!!!!
Résultat d'exploitation de l'exercice: 44 060,9200000000000000
INVESTISSEMENTS MATERIEL
Achat moteurs et appareils -42 400,0000000000000000
Vente appareils 0,0000000000000000
Résultat comptable de l'exercice 1 660,9199999999800000
Merci par avance de tes lumières.
C'est bien ce que je ne comprends pas : Tous les montants saisis n'ont que 2 décimales et les seules fonctions utilisées sont des sommes : somme(); somme si(); + ; - .
Il n'y a aucune multiplication, sinus, etc.
Voici le copier/coller-valeur du dernier calcul, le résultat comptable étant la simple somme des 3 chiffres au dessus !!!!!!!
Résultat d'exploitation de l'exercice: 44 060,9200000000000000
INVESTISSEMENTS MATERIEL
Achat moteurs et appareils -42 400,0000000000000000
Vente appareils 0,0000000000000000
Résultat comptable de l'exercice 1 660,9199999999800000
Merci par avance de tes lumières.
Raymond PENTIER
Messages postés
58423
Date d'inscription
lundi 13 août 2007
Statut
Contributeur
Dernière intervention
10 mai 2024
17 105
6 juil. 2011 à 13:33
6 juil. 2011 à 13:33
Je me souviens avoir lu quelque chose sur un bug ancien ...
Quelle version utilises-tu ?
Vérifie si l'anomalie se reproduit en refaisant exactement tes mêmes opérations :
- sur un autre ordinateur
- avec une autre version d'excel
Si tu veux, envoie-moi ton fichier avec https://www.cjoint.com/ pour que je contrôle quelque chose.
Cordialement.
Quelle version utilises-tu ?
Vérifie si l'anomalie se reproduit en refaisant exactement tes mêmes opérations :
- sur un autre ordinateur
- avec une autre version d'excel
Si tu veux, envoie-moi ton fichier avec https://www.cjoint.com/ pour que je contrôle quelque chose.
Cordialement.
Raymond PENTIER
Messages postés
58423
Date d'inscription
lundi 13 août 2007
Statut
Contributeur
Dernière intervention
10 mai 2024
17 105
7 juil. 2011 à 02:38
7 juil. 2011 à 02:38
Salut dominique.
Le post #6 de Mytå du 6 jui 2011 à 14:51 te propose le lien "L'arithmétique en virgule flottante peut fournir des résultats incorrects dans Excel" où se trouve l'explication technique que tu voulais :
Le post #5 de Mytå du 6 jui 2011 à 14:47 t'avait fourni la méthode à suivre, au moins pour la cellule où tu fais le rapprochement.
Cordialement.
Le post #6 de Mytå du 6 jui 2011 à 14:51 te propose le lien "L'arithmétique en virgule flottante peut fournir des résultats incorrects dans Excel" où se trouve l'explication technique que tu voulais :
Lors du stockage de nombres, un nombre binaire correspondant peut représenter chaque nombre ou nombre fractionnel. Par exemple, la fraction 1/10e peut être représentée dans un système de numération décimal comme 0,1. Toutefois, ce même nombre converti au format binaire prend la forme du nombre décimal binaire répétitif suivant : 0001100110011100110011 (etc.) qui peut être répété à l'infini. Ce nombre ne peut pas être représenté dans un espace fini (limité). Par conséquent, il est arrondi d'environ -2.8E-17 lorsqu'il est stocké.
Le post #5 de Mytå du 6 jui 2011 à 14:47 t'avait fourni la méthode à suivre, au moins pour la cellule où tu fais le rapprochement.
Cordialement.
Mytå
Messages postés
2973
Date d'inscription
mardi 20 janvier 2009
Statut
Contributeur
Dernière intervention
20 décembre 2016
943
6 juil. 2011 à 14:47
6 juil. 2011 à 14:47
Re le forum
Pour réduire les conséquences éventuelles de l'inexactitude du stockage arithmétique à virgule flottante, vous pouvez aussi utiliser la fonction ARRONDI pour arrondir les nombres au nombre de décimales requis par vos calculs.
Mytå
Pour réduire les conséquences éventuelles de l'inexactitude du stockage arithmétique à virgule flottante, vous pouvez aussi utiliser la fonction ARRONDI pour arrondir les nombres au nombre de décimales requis par vos calculs.
Mytå
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Mytå
Messages postés
2973
Date d'inscription
mardi 20 janvier 2009
Statut
Contributeur
Dernière intervention
20 décembre 2016
943
Modifié par Mytå le 6/07/2011 à 15:01
Modifié par Mytå le 6/07/2011 à 15:01
Re le forum
Lien : Comment faire pour corriger les erreurs d'arrondi dans l'arithmétique en virgule flottante
Lien : L'arithmétique en virgule flottante peut fournir des résultats incorrects dans Excel
Mytå
Quelle prétention de prétendre que l'informatique est récente
Adam et Eve avaient déjà un Apple ! [MsProject 2003(FR), Excel 2003-2007(FR)]
Lien : Comment faire pour corriger les erreurs d'arrondi dans l'arithmétique en virgule flottante
Lien : L'arithmétique en virgule flottante peut fournir des résultats incorrects dans Excel
Mytå
Quelle prétention de prétendre que l'informatique est récente
Adam et Eve avaient déjà un Apple ! [MsProject 2003(FR), Excel 2003-2007(FR)]
Mike-31
Messages postés
18318
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
26 avril 2024
5 078
6 juil. 2011 à 17:02
6 juil. 2011 à 17:02
Salut,
si tu souhaites afficher deux décimales, formates tes trois cellules en format nombre deux décimales
en 28 colle cette formule
=TEXTE(C12+C26;"# ##0,00")*1
en C31
=TEXTE(SOMME.SI(journal!$F:$F;$A31;journal!$D:$D)-SOMME.SI(journal!$E:$E;$A31;journal!$D:$D);"# ##0,00")*1
et en C33
=TEXTE(SOMME(C28;C31:C32);"# ##0,00")*1
par contre si tu ne souhaites pas de décimales formate les cellules en fonction
modifie la formule
"# ##0,00" par "# ##0" ou "standard"
si tu souhaites afficher deux décimales, formates tes trois cellules en format nombre deux décimales
en 28 colle cette formule
=TEXTE(C12+C26;"# ##0,00")*1
en C31
=TEXTE(SOMME.SI(journal!$F:$F;$A31;journal!$D:$D)-SOMME.SI(journal!$E:$E;$A31;journal!$D:$D);"# ##0,00")*1
et en C33
=TEXTE(SOMME(C28;C31:C32);"# ##0,00")*1
par contre si tu ne souhaites pas de décimales formate les cellules en fonction
modifie la formule
"# ##0,00" par "# ##0" ou "standard"
7 juil. 2011 à 02:39
Modifié par eriiic le 7/07/2011 à 07:26
Ce format est destiné aux comptables qui additionnent/multiplient des nombres à 2 décimales.
Il n'y pas d'erreur d'arrondi avec ce format puisque les calcul se font avec des entiers et permet d'avoir des balances exactes.
Tu as le droit de mettre +1 ;-)
eric
edit : aide excel
Currency, type de données
Les variables de type Currency sont stockées sous la forme de nombres de 64 bits (8 octets) au format entier, avec un décalage de 10 000 afin d'obtenir un nombre à virgule fixe comprenant 15 chiffres à gauche du séparateur décimal et 4 chiffres à droite. Cette représentation offre une plage comprise entre -922 337 203 685 477,5808 et 922 337 203 685 477,5807. Le caractère de déclaration de type Currency est le signe @.
Le type de données Currency est utile pour les calculs monétaires et pour les calculs à virgule fixe dans lesquels la précision revêt une importance particulière.