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 Java Discussion :

float conversion String


Sujet :

Langage Java

  1. #1
    Membre du Club
    Homme Profil pro
    oracle
    Inscrit en
    Août 2006
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : oracle
    Secteur : Finance

    Informations forums :
    Inscription : Août 2006
    Messages : 33
    Points : 46
    Points
    46
    Par défaut float conversion String
    Quand je convertis une chaîne de caractères en float, et je l’utilise dans mes calcule je perds des données après le virgule exemple:

    602.1 – 180 = 422.09998

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    429
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 429
    Points : 475
    Points
    475
    Par défaut
    Bonjour,

    Peux-tu montrer ton code ?

    Nicolas

  3. #3
    Membre du Club
    Homme Profil pro
    oracle
    Inscrit en
    Août 2006
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : oracle
    Secteur : Finance

    Informations forums :
    Inscription : Août 2006
    Messages : 33
    Points : 46
    Points
    46
    Par défaut
    float amountHT =602.1f;
    amountHt = Float.parseFloat(text16.getText());
    float fltAmount = 0.0f;

    fltAmount = amountHT - amountHt;

  4. #4
    Expert éminent sénior
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    les float ne sont pas extrêment précis, remplaces les par des doubles, ou encore mieux de BigDecimal, ça ira tout de suite mieux.
    Hey, this is mine. That's mine. All this is mine. I'm claiming all this as mine. Except that bit. I don't want that bit. But all the rest of this is mine. Hey, this has been a really good day. I've eaten five times, I've slept six times, and I've made a lot of things mine. Tomorrow, I'm gonna see if I can't have sex with something.

  5. #5
    Expert confirmé
    Avatar de GLDavid
    Homme Profil pro
    Service Delivery Manager
    Inscrit en
    Janvier 2003
    Messages
    2 852
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Service Delivery Manager
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 852
    Points : 4 759
    Points
    4 759
    Par défaut
    Une idée serait sans doute d'utiliser l'objet DecimalFormat.

    @++
    GLDavid
    Consultez la FAQ Perl ainsi que mes cours de Perl.
    N'oubliez pas les balises code ni le tag

    Je ne répond à aucune question technique par MP.

  6. #6
    Membre du Club
    Homme Profil pro
    oracle
    Inscrit en
    Août 2006
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : oracle
    Secteur : Finance

    Informations forums :
    Inscription : Août 2006
    Messages : 33
    Points : 46
    Points
    46
    Par défaut
    Je veux savoir la cause du problème.

  7. #7
    Membre expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Points : 3 080
    Points
    3 080
    Par défaut
    Citation Envoyé par aliomrani1
    Je veux savoir la cause du problème.
    La cause du problème est simplement la représentation binaire d'un flottant... 0.1 ne tombe pas juste en binaire, et il faudrait un nombre infini de bits significatifs pour le représenter. Pas de chance, les floats n'ont pas un nombre infini de bits significatifs (sinon faudrait beaucoup de mémoire), ils n'en ont que 24 (23 + implicite). Donc il y a de la perte...

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 01/06/2007, 10h48
  2. conversion de float en string
    Par Spont dans le forum C
    Réponses: 4
    Dernier message: 15/05/2007, 16h27
  3. conversion string hexa en float
    Par cimson dans le forum Langage
    Réponses: 6
    Dernier message: 25/04/2007, 23h57
  4. Problème de conversion String en Float avec JTable
    Par dumasan dans le forum Composants
    Réponses: 4
    Dernier message: 23/04/2007, 11h56
  5. [Java]Conversion de float en String et inversement
    Par djoukit dans le forum Langage
    Réponses: 7
    Dernier message: 13/10/2005, 11h55

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