IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

Les nombres flottants et leurs pièges [Tutoriel]


Sujet :

C++

  1. #1
    Inactif  


    Homme Profil pro
    Inscrit en
    Novembre 2008
    Messages
    5 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2008
    Messages : 5 288
    Points : 15 620
    Points
    15 620
    Par défaut Les nombres flottants et leurs pièges
    Une partie des erreurs que l'on retrouve régulièrement en C++ vient d'une connaissance superficielle de la manipulation des nombres réels en informatique. Dans la série d'articles "flotting point", Bruce Dawson aborde en détail les problématiques liées à la représentation des nombres à virgule flottante. Ce premier article pose les bases et explore le monde étrange et merveilleux des mathématiques à virgule flottante.

    Les nombres flottants et leurs pièges

    Quels sont les principales difficultés que vous avez déjà rencontrées en manipulant les nombres à virgule flottant ?
    Quels autres astuces connaissez-vous sur les nombres à virgule flottant ?


    Retrouver l'ensemble des articles de cette série sur la page d'index.

  2. #2
    Membre expérimenté
    Homme Profil pro
    Chercheur
    Inscrit en
    Mars 2010
    Messages
    1 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chercheur

    Informations forums :
    Inscription : Mars 2010
    Messages : 1 218
    Points : 1 685
    Points
    1 685
    Par défaut
    Bonjour,

    merci pour la traduction!
    Le billet est excellent : son contenu est intéressant et vraiment très pédagogique.

    Il y a un petit bémol selon moi.
    La traduction française du titre ne me semble pas complètement refléter la version originale Tricks With the Floating-Point Format. En lisant Les nombres flottants et leurs pièges, j'ai pensé que le billet aborderait les pièges liés au calcul et à la manipulation de flottants. Il ne traite en fait que de la nature du format, ce qu'annonçait bien le titre original.

    A part ce détail, c'est parfait.

    Bonne continuation!

  3. #3
    Rédacteur
    Avatar de Nathanael Marchand
    Homme Profil pro
    Expert .Net So@t
    Inscrit en
    Octobre 2008
    Messages
    3 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert .Net So@t
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3 615
    Points : 8 080
    Points
    8 080
    Par défaut
    Je me permets de signaler que je trouve cette formulation un peu ambigüe:
    •si le champ exposant est nul, alors l'exposant est -126
    Il me semble plus clair d'écrire
    •si le champ exposant vaut 0, alors l'exposant est -126

  4. #4
    Rédacteur

    Homme Profil pro
    Comme retraité, des masses
    Inscrit en
    Avril 2007
    Messages
    2 978
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 83
    Localisation : Suisse

    Informations professionnelles :
    Activité : Comme retraité, des masses
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 2 978
    Points : 5 179
    Points
    5 179
    Par défaut
    Bonjour à tous!
    Cet article confirme mon opinion, à savoir qu'une grave lacune s'est progressivement introduite dans l'enseignement de l'informatique: on semble ne plus enseigner la base de ce qu'il y a dans un ordinateur. Avec les langages dits "de haut niveau", on s'éloigne de la réalité. Je pense que les futurs informaticiens devraient voir en premier lieu ce qu'est un processeur, comment ça fonctionne, avec quelques rudiments de langage machine et d'assembleur, non pas pour les utiliser par la suite, mais pour comprendre. C'est pourquoi la connaissance de la norme IEEE 754 est essentielle.

    C'est cette lacune qui explique des messages stupides, en particulier dans le forum Matlab par exemple:
    J'ai voulu calculer 1 - 1/3 - 1/3 - 1/3 et ça ne me donne pas zéro
    ou:
    J'ai un fichier qui contient une courbe...
    Jean-Marc Blanc
    Calcul numérique de processus industriels
    Formation, conseil, développement

    Point n'est besoin d'espérer pour entreprendre, ni de réussir pour persévérer. (Guillaume le Taiseux)

  5. #5
    Expert éminent

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Points : 6 911
    Points
    6 911
    Par défaut
    On enseigne pas assez ce qu'est un flottant, c'est certain. Je ne suis pas sûr par contre qu'il faille commencer par un modèle de comment fonctionne un ordinateur. J'ai vu aussi trop de gens faire des bêtises "pour être prêt de la machine" sans se rendre compte que le modèle qu'il avait de ce qu'était un processeur était trop simpliste pour pouvoir justifier les conclusions qu'ils en tiraient sur l'intérêt ou le non intérêt de faire certaines choses. Et un modèle réaliste, je préfère attendre un peu.
    Les MP ne sont pas là pour les questions techniques, les forums sont là pour ça.

  6. #6
    Membre averti
    Profil pro
    professeur des universités à la retraite
    Inscrit en
    Août 2008
    Messages
    364
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : professeur des universités à la retraite

    Informations forums :
    Inscription : Août 2008
    Messages : 364
    Points : 439
    Points
    439
    Par défaut
    Citation Envoyé par Aleph69 Voir le message
    Il y a un petit bémol selon moi.
    La traduction française du titre ne me semble pas complètement refléter la version originale Tricks With the Floating-Point Format. En lisant Les nombres flottants et leurs pièges, j'ai pensé que le billet aborderait les pièges liés au calcul et à la manipulation de flottants. Il ne traite en fait que de la nature du format, ce qu'annonçait bien le titre original.
    Le titre original contient le mot 'trick' qui en français signifie 'tour' (au sens mauvais tour qu'on joue à quelqu'un) ou même 'tromperie' : la traduction par 'piège' est donc tout à fait correcte et le titre français me semble donc être un très bon reflet du titre original.
    Quant à savoir si le titre original reflète bien le contenu de l'article, c'est une autre paire de manches...

  7. #7
    Membre expert
    Avatar de kwariz
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Octobre 2011
    Messages
    898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2011
    Messages : 898
    Points : 3 352
    Points
    3 352
    Par défaut
    Citation Envoyé par ptyxs Voir le message
    Le titre original contient le mot 'trick' qui en français signifie 'tour' (au sens mauvais tour qu'on joue à quelqu'un) ou même 'tromperie' : la traduction par 'piège' est donc tout à fait correcte et le titre français me semble donc être un très bon reflet du titre original.
    Quant à savoir si le titre original reflète bien le contenu de l'article, c'est une autre paire de manches...
    Bonjour,

    trick a aussi le sens d'astuce comme dans "tips and tricks" = trucs et astuces ou "bit tricks" = "astuces de manipulation de bits".
    Le sens de tour est parfois correct mais n'a pas toujours une connotation péjorative.

    EDIT: En relisant l'article original (et ses suites qui pour certaines expliquent les pièges) je pense que l'esprit du titre était plus astuces que pièges, mais bon je ne suis pas un traducteur chevronné. Il faut avouer que la langue anglaise est de loin supérieure à la langue française pour produire des titres concis qui «claquent» bien.
    En tout cas bravo pour l'effort de traduction et le partage

  8. #8
    Membre expérimenté
    Homme Profil pro
    Chercheur
    Inscrit en
    Mars 2010
    Messages
    1 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chercheur

    Informations forums :
    Inscription : Mars 2010
    Messages : 1 218
    Points : 1 685
    Points
    1 685
    Par défaut
    Bonjour,

    n'étant pas bilingue, je ne peux pas affirmer quelle serait la meilleure traduction possible du titre original. J'ai le même point de vue que kwariz sur la signification du mot tricks dans le contexte du billet, mais bien sûr sans aucune certitude. Et comme ptyxs, je pense aussi qu'une partie de nos interrogations vient du fait que le titre original ne reflète pas non plus complètement le contenu du billet original. Tours semble toutefois être une traduction acceptable puisqu'elle est sémantiquement très proche de tricks : les sens positifs et négatifs du terme sont conservés (tours de magie ou de passe-passe mais aussi mauvais tour).

    Concernant ma remarque initiale, je faisais plutôt référence à l'absence du terme format dans la traduction française, puisque c'est seulement cet aspect des nombres flottants que le billet explore. Si j'avais eu à traduire le titre, j'aurais sûrement proposé tours avec le format à virgule flottante mais à vrai dire sans être totalement convaincu non plus.

    Le contenu du billet est bien traduit, compréhensible et intéressant et c'est ce que j'en retiens.

  9. #9
    Membre émérite
    Avatar de white_tentacle
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    1 505
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 1 505
    Points : 2 799
    Points
    2 799
    Par défaut
    Puisqu’on parle de flottants, il me parait important de citer http://docs.oracle.com/cd/E19957-01/..._goldberg.html

    C’est en anglais, c’est clairement moins abordable que l’article ici-traduit, qui est beaucoup plus didactique, mais pour toute personne utilisant l’informatique professionnellement, c’est un indispensable.

  10. #10
    Rédacteur

    Homme Profil pro
    Comme retraité, des masses
    Inscrit en
    Avril 2007
    Messages
    2 978
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 83
    Localisation : Suisse

    Informations professionnelles :
    Activité : Comme retraité, des masses
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 2 978
    Points : 5 179
    Points
    5 179
    Par défaut
    Bonjour à tous!
    Puisqu’on parle de flottants, il me parait important de citer http://docs.oracle.com/cd/E19957-01/..._goldberg.html
    Magnifique, ce document!
    Jean-Marc Blanc
    Calcul numérique de processus industriels
    Formation, conseil, développement

    Point n'est besoin d'espérer pour entreprendre, ni de réussir pour persévérer. (Guillaume le Taiseux)

  11. #11
    Membre averti
    Profil pro
    professeur des universités à la retraite
    Inscrit en
    Août 2008
    Messages
    364
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : professeur des universités à la retraite

    Informations forums :
    Inscription : Août 2008
    Messages : 364
    Points : 439
    Points
    439
    Par défaut
    Je remets le lien (pas utilisable dans le message précédent) :

    http://docs.oracle.com/cd/E19957-01/..._goldberg.html

  12. #12
    Membre émérite
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    2 764
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 764
    Points : 2 705
    Points
    2 705
    Par défaut
    Citation Envoyé par kwariz Voir le message
    trick a aussi le sens d'astuce comme dans "tips and tricks" = trucs et astuces
    Dans tips and tricks, c'est tips qui a le sens d'astuces, pas tricks.

  13. #13
    Membre émérite
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    2 764
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 764
    Points : 2 705
    Points
    2 705
    Par défaut
    Citation Envoyé par Aleph69 Voir le message
    Si j'avais eu à traduire le titre, j'aurais sûrement proposé tours avec le format à virgule flottante mais à vrai dire sans être totalement convaincu non plus.
    Et pour cause : en français, cela donne une construction très bancale.

    Un contributeur de ce fil a indiqué qu'un tour n'était pas forcément péjoratif, mais c'est selon moi faux. Un tour de magie, par exemple, a pour vocation à tromper notre vigilance ou nos constructions mentales (sur des enchaînements de mouvement, par exemple).

    Un tour, c'est un mécanisme de duperie. Et il est volontaire de la part de son auteur. Je ne suis pas sûr qu'un nombre flottant ait la volonté de tromper ses utilisateurs...

Discussions similaires

  1. Réponses: 1
    Dernier message: 15/10/2010, 14h04
  2. Réponses: 3
    Dernier message: 01/08/2007, 12h49
  3. [MySQL] Probleme avec les nombres flottants
    Par Seth77 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 04/07/2006, 10h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo