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

Java Discussion :

rendre un nombre de virgule flottante en virgule fixe


Sujet :

Java

  1. #1
    Membre régulier Avatar de mitnick2006
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2006
    Messages
    163
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Maroc

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Décembre 2006
    Messages : 163
    Points : 106
    Points
    106
    Par défaut rendre un nombre de virgule flottante en virgule fixe
    salut je veux savoir comment rendre un nombre de type double avec virgule flottante en virgule fixe avec une précision donnée
    et merci en avance

  2. #2
    Membre averti
    Profil pro
    Développeur Java
    Inscrit en
    Novembre 2007
    Messages
    301
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Novembre 2007
    Messages : 301
    Points : 368
    Points
    368
    Par défaut
    Peut être en travaillant avec un BigDecimal.

  3. #3
    Membre régulier Avatar de mitnick2006
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2006
    Messages
    163
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Maroc

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Décembre 2006
    Messages : 163
    Points : 106
    Points
    106
    Par défaut Solution
    salut j ai trouvé une solution adéquate à ce problème .
    j ai développé une fonction qui transforme un double en String puis cherche la virgule et prendre la partie réelle et la précision des nombres aprés la virgule.
    voici le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
     public double fix_virgule(double nembr_virgul_flottant){
        	String nembr_virgul_fixe_str="";
        	// transformer le nombre en chaine de caractère et ajouter des zéros     
                pour le cas où il est entier
            String nembr_virgul_flottant_str=nembr_virgul_flottant+"00";
            double nembr_virgul_fixe=0;
    //boucle for pour traverser la chaine de caractère en cherchant la virgule
        for(int i=0;i<nembr_virgul_flottant_str.length();i++)	
    // condition si la virgule trouvée
        	if (nembr_virgul_flottant_str.charAt(i)== '.'){
            // extraire la sous chaine qui contient la valeur entière plus 2 chiffre après la virgule 
       	 nembr_virgul_fixe_str=nembr_virgul_flottant_str.substring(0,i+3);
        	// convertir cette chaine en double
           nembr_virgul_fixe=Double.parseDouble(nembr_virgul_fixe_str);            
           // pour quitter la boucle 
            break;
        }
           return nembr_virgul_fixe;
        }
    et merci en tous cas

  4. #4
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 807
    Points
    48 807
    Par défaut
    çà te renvoie un double, donc un nombre à virgule flottante. De plus, pour rappel, les nombres à virgule flottante sont enregistré en binaire, la notation 'virgule fixe' comme tu essaie de la faire, c'est une notation décimale. Il n'y a pas de conversion 100% correct entre, par exemple, 0.001 et un nombre binaire à virgule flottante, t'as toujours une perte de précision. Généralement, on la compense lors de l'affichage, car l'erreur est plein de fois derrière la virgule, mais elle existe.

    Si t'as besoin du nombre + deux chiffres après la virgule (vraisemblablement du calcul financier....), travaille directement avec des int et considère ceux-ci comme un représentation en centimes. La, tu aura de la virgule fixe!

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

Discussions similaires

  1. Réponses: 9
    Dernier message: 22/05/2021, 15h33
  2. Réponses: 3
    Dernier message: 01/08/2007, 12h49
  3. Comment fixer le nombre de chiffre après la virgule d'un flottant
    Par moon93 dans le forum Général Python
    Réponses: 1
    Dernier message: 15/06/2007, 16h49
  4. printf nombre a virgule flottante
    Par Toutankharton dans le forum C
    Réponses: 1
    Dernier message: 10/12/2006, 18h09
  5. 50.00 n'est pas un nombre en virgule flottante correct
    Par Merfolk dans le forum C++Builder
    Réponses: 2
    Dernier message: 26/01/2006, 00h44

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