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

avec Java Discussion :

Operation basique chiffre


Sujet :

avec Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mai 2006
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 26
    Par défaut Operation basique chiffre
    Bonjour,

    J'ai un soucis lorsque je veux transformer un chiffre. Je lis un fichier avec un Stringtoken (donc en Input j aurais un int et en sortie je veux aussi un int)

    en gros si j'ai "5" dans mon fichier, je voudrais avoir "5000000"

    voici le code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    String chiffreA = st.nextToken();          	  		
    String chiffreB= ((Integer)((Float)((Float.parseFloat(chiffreA .replaceAll(",", ".")))*(float)1000000)).intValue()).toString();
    Cependant, cela ne marche pas dans tout les cas.

    Extrait de a console:

    chiffreA : 4,166667 => tout se passe bien
    chiffreB: 4166667

    et la ça coince

    chiffreA :16,65833
    chiffreB:16658331

    chiffreA : 24,991667
    chiffreB: 24991666

    Si quelqu'un a une idee.

    Merci tout le monde

  2. #2
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Par défaut
    Cela est dû à la représentation interne du flottant. Quelque soit le langage, tu auras toujours le même problème. Le mieux est de faire l'opération sur la chaîne, sans jamais passer par un float.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

  3. #3
    Membre averti
    Inscrit en
    Mai 2006
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 26
    Par défaut
    Merci de la rapidité! Tu entend quoi par représentation interne?

    et je ne vois pas trop comment faire une opération sur une chaine

  4. #4
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Par défaut
    Citation Envoyé par Keldou Voir le message
    Merci de la rapidité! Tu entend quoi par représentation interne?

    et je ne vois pas trop comment faire une opération sur une chaine
    La représentation interne, c'est la mantisse et l'exposant.
    Pour l'opération directement sur la chaine, elle consiste à trouver le nombre de caractères après la virgule, puis de supprimer la virgule et de concaténer des zéros à la fin pour obtenir la taille voulue. Ensuite tu transforme la chaine en int et la précision sera conservée.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

  5. #5
    Membre averti
    Inscrit en
    Mai 2006
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 26
    Par défaut
    ok, je vois!

    Je parse avec un StringTokenizer sur la virgule

    J'etudie les differents cas et je reconstruit ma chaine avec un replace() et des 0 quand j'ai besoin.

    Merci de l'aide

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

Discussions similaires

  1. calculatrice operations >a 1 chiffre
    Par xtaze dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 16/10/2005, 19h33
  2. extraire 2 chiffres après virgule ?
    Par nerick dans le forum C
    Réponses: 2
    Dernier message: 13/12/2002, 17h10
  3. [VB6] [Printer] Chiffres alignés à droite
    Par Laye dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 03/10/2002, 18h36
  4. Chiffre a Virgule Fixe
    Par garybaldi dans le forum C
    Réponses: 3
    Dernier message: 21/06/2002, 10h41
  5. Recherche programme qui convertit les chiffres arabes en nb
    Par oli57 dans le forum Algorithmes et structures de données
    Réponses: 5
    Dernier message: 15/06/2002, 03h11

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