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

Langage C++ Discussion :

Comportement variable d'un programme C++ utilisant des floats/double


Sujet :

Langage C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Inscrit en
    Octobre 2010
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 2
    Par défaut Comportement variable d'un programme C++ utilisant des floats/double
    Bonjour,

    J'utilise Visual C++ 2005 sous Windows XP.

    Depuis plusieurs jours je faisais tourner mon programme plusieurs fois par jour sans jamais rebooter ma machine, et tout allait très bien j'obtenais le même résultat à chaque exécution.

    Suite à un blocage du système j'ai dû rebooter ma machine. J'ai réexécuté mon programme après le reboot sans le recompiler mais cette fois j'ai obtenu un résultat différent sur des calculs numériques flotants (la diffférence entre ce nouveau résultat et l'ancien est de l'ordre de 1e-8).

    Bien sûr l'erreur peut venir d'un bug au niveau de mon code (variables non intialisées etc...) et je précise que je n'utilise pas de random variable ou d'appels à l'heure du système etc..

    Mais par curiosité je me pose cette question : est-ce qu'il est possible que deux exécutions successives d'un même programme sur une même machine produisent deux résultats différents dépendant de l'état du système (pas de recompilation entre les deux exécutions mais éventuellement un reboot).

    Merci pour vos réponses.

  2. #2
    Membre actif

    Inscrit en
    Octobre 2010
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 50
    Par défaut
    Un float a 6 chiffres significatifs en représentation décimale. Au-delà de ça, il n'y aucune garantie sur les résultats. Je ne saurais pas dire pourquoi dans ton cas précis il y a eu variation, mais ce n'est pas une anomalie à moins qu'elle se produise dans les chiffres significatifs.

  3. #3
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Par défaut
    Citation Envoyé par bajdoub Voir le message
    Mais par curiosité je me pose cette question : est-ce qu'il est possible que deux exécutions successives d'un même programme sur une même machine produisent deux résultats différents dépendant de l'état du système (pas de recompilation entre les deux exécutions mais éventuellement un reboot).
    Oui (même en supposant toutes les entrées identiques)
    => L'utilisation d'un comportement indéfini peut aboutir à des comportements variables à chaque exécution ;
    => L'ordonnancement des tâches (multithread) peut ne pas être le même ;
    => les réponses des appels systèmes peuvent prendre plus ou moins de temps ;
    etc...

  4. #4
    Nouveau candidat au Club
    Inscrit en
    Octobre 2010
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 2
    Par défaut
    Merci pour vos réponses. Je vais quand même vérifier si je n'ai pas de bug dans mon programme.

Discussions similaires

  1. Programme Java utilisant des EJB
    Par giann08 dans le forum Java EE
    Réponses: 4
    Dernier message: 30/08/2013, 13h21
  2. Créer un setup d'un programme qui utilise des DLL
    Par douze_12 dans le forum VB.NET
    Réponses: 3
    Dernier message: 26/07/2012, 11h40
  3. Terminaison d'un programme qui utilise des actors.
    Par karatekator dans le forum Scala
    Réponses: 2
    Dernier message: 28/02/2011, 20h12
  4. Java pour un programme qui utilise des joysticks?
    Par ethan_01 dans le forum Débuter avec Java
    Réponses: 1
    Dernier message: 05/06/2010, 23h29
  5. Affichage des floats/doubles
    Par Zenol dans le forum Bibliothèque standard
    Réponses: 9
    Dernier message: 11/11/2008, 23h15

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