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 :

Warning convertion long en float


Sujet :

C++

  1. #1
    Membre éclairé
    Avatar de Kalite
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 310
    Par défaut Warning convertion long en float
    Bonjour,

    J'ai besoin de vos lumière.
    Mon problème est le suivant:
    Je convertie un long en float et lorsque je compile avec MSVS2008 j'obtien le warning suivant:
    warning C4244: '='*: conversion de 'long' en 'float', perte possible de données

    Donc la je comprend pas. Un long c'est codé sur 4 octets donc des valeurs entre -2^31 et (2^31-1). Un float entre 3.48E-32 et 3.48E+32 alors je devrai avoir la place pour le long et pas avoir de perte de données.


  2. #2
    Expert confirmé

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Par défaut
    Citation Envoyé par Kalite Voir le message
    Bonjour,

    J'ai besoin de vos lumière.
    Mon problème est le suivant:
    Je convertie un long en float et lorsque je compile avec MSVS2008 j'obtien le warning suivant:
    warning C4244: '='*: conversion de 'long' en 'float', perte possible de données

    Donc la je comprend pas. Un long c'est codé sur 4 octets donc des valeurs entre -2^31 et (2^31-1). Un float entre 3.48E-32 et 3.48E+32 alors je devrai avoir la place pour le long et pas avoir de perte de données.

    Un float est aussi generalement sur 32 bits... donc on gagne de l'intervalle au prix de la precision. Un float generalement ne peut representer exactement les entiers qu'entre -2^24 et 2^24.

  3. #3
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Par défaut
    peut être parce que effectivement la conversion de 2 000 000 001 de long en float va effectivement perdre des données (le 1 final) risque d'être perdu
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

  4. #4
    Membre éclairé
    Avatar de Kalite
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 310
    Par défaut
    Citation Envoyé par Jean-Marc.Bourguet Voir le message
    Un float est aussi generalement sur 32 bits... donc on gagne de l'intervalle au prix de la precision. Un float generalement ne peut representer exactement les entiers qu'entre -2^24 et 2^24.
    Effectivement, c'est une bonne raison. Dans mon cas cela na pas de concéquence.

  5. #5
    Expert éminent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 644
    Par défaut
    Salut,
    Citation Envoyé par Kalite Voir le message
    Effectivement, c'est une bonne raison. Dans mon cas cela na pas de concéquence.
    C'est bien pour cela que tu as un avertissement et non une erreur

    L'idée de base est "simplement" d'attirer ton attention sur le fait que tu dois apporter une attention particulière à ce que tu fais, car tu *risque*, dans certains cas, de perdre des informations importantes

    Ceci dit, une des première questions que l'on (devrait) se pose(r) fatalement lorsque l'on croise un tel avertissement tient à l'opportunité de la conversion...

    Ne serait-il en effet pas "cohérent" et "plus sage" d'envisager d'utiliser en permanence soit un entier, soit un nombre à virgule flottante, afin d'éviter cette conversion
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. demande d'explication pour long et float
    Par m3am3a dans le forum Général Java
    Réponses: 1
    Dernier message: 09/11/2008, 23h48
  2. convertion string to float
    Par dz_robotix dans le forum Débuter avec Java
    Réponses: 4
    Dernier message: 23/04/2008, 15h09
  3. [Debutant] pb avec le converter Long
    Par Raumsog dans le forum JSF
    Réponses: 2
    Dernier message: 21/01/2008, 10h30
  4. probleme de convertion Bits en Float
    Par L4BiN dans le forum API standards et tierces
    Réponses: 1
    Dernier message: 15/09/2007, 20h52
  5. [C#2.0] Convertion Byte[] en float
    Par Biloutor dans le forum Windows Forms
    Réponses: 4
    Dernier message: 01/06/2006, 11h08

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