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 :

Tronquer un float (n chiffres apres la virgule)


Sujet :

Langage Java

  1. #1
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Octobre 2004
    Messages
    398
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2004
    Messages : 398
    Points : 710
    Points
    710
    Par défaut Tronquer un float (n chiffres apres la virgule)
    salut,

    je voudrais savoir si pour tronquer un float a n chiffre apres la virgule,
    y'avait autre chose que
    (float) ((int) (d*100))) / 100 ??

    merci

  2. #2
    Rédacteur
    Avatar de CyberChouan
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    2 752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 752
    Points : 4 314
    Points
    4 314
    Par défaut
    Oui : la classe DecimalFormat, dont c'est justement le but.
    Avant de poster, pensez à regarder la FAQ, les tutoriaux, la Javadoc (de la JRE que vous utilisez) et à faire une recherche
    Je ne réponds pas aux questions techniques par MP: les forums sont faits pour ça
    Mes articles et tutoriaux & Mon blog informatique

  3. #3
    Expert éminent sénior Avatar de Uther
    Homme Profil pro
    Tourneur Fraiseur
    Inscrit en
    Avril 2002
    Messages
    4 570
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Tourneur Fraiseur

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 570
    Points : 15 537
    Points
    15 537
    Par défaut
    D'autant plus que (float) ((int) (d*100))) / 100 ne retournera pas forcément un nombre a 2 chiffres après la virgule si on l'affiche en décimal.

  4. #4
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Octobre 2004
    Messages
    398
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2004
    Messages : 398
    Points : 710
    Points
    710
    Par défaut
    Citation Envoyé par CyberChouan Voir le message
    Oui : la classe DecimalFormat, dont c'est justement le but.
    oui jai trouve ca, mais c'est surtout pour formatter pour de l'affichage
    on peut pas avoir carrement un float avec 2 chiffres apres la virgule ???

  5. #5
    Expert éminent sénior Avatar de Uther
    Homme Profil pro
    Tourneur Fraiseur
    Inscrit en
    Avril 2002
    Messages
    4 570
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Tourneur Fraiseur

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 570
    Points : 15 537
    Points
    15 537
    Par défaut
    Un float, comme son nom l'indique, est un nombre à virgule flottante qui est de plus géré de manière binaire.
    Donc la notion de "2 chiffres après la virgule" est contraire au principe de son fonctionnement.

  6. #6
    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 : 43
    Localisation : France

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

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Points : 7 163
    Points
    7 163
    Par défaut
    Citation Envoyé par franck06 Voir le message
    on peut pas avoir carrement un float avec 2 chiffres apres la virgule ???
    Oui ! On vient de te le dire : il faut utiliser la classe java.text.DecimalFormat qui va se charger de construire une chaîne formatée à partir du float.
    Qu'est-ce que tu ne comprends pas ?
    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.

  7. #7
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Octobre 2004
    Messages
    398
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2004
    Messages : 398
    Points : 710
    Points
    710
    Par défaut
    Citation Envoyé par dinobogan Voir le message
    Oui ! On vient de te le dire : il faut utiliser la classe java.text.DecimalFormat qui va se charger de construire une chaîne formatée à partir du float.
    Qu'est-ce que tu ne comprends pas ?
    euh scusez moi j'ai compris

  8. #8
    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 : 43
    Localisation : France

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

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Points : 7 163
    Points
    7 163
    Par défaut
    Citation Envoyé par franck06 Voir le message
    euh scusez moi j'ai compris
    ah ok, tu me rassures
    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.

  9. #9
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 155
    Points : 199
    Points
    199
    Par défaut
    petit topo sur les float:
    le nombre est stocké en mémoire selon la notation scientifique:
    - un bit pour le signe
    - une dizaine pour stocker l'exposant (ou quelques valeurs particulières comme nan, inf)
    - le reste pour stocker la mantisse, celle-ci étant les valeurs xx dans le "1.xxx".
    A savoir que l'on parle ici en langage binaire, donc en puissance de 2!
    (1.00100110 et non pas 6.23935)

    Cette structure ne permet pas de stocker certains nombres décimaux sauf par des approximations. Si tu veux avoir du décimal flottant exact, il faut passer par autre chose, Comme créer sa propre classe de flottant qui marche, elle, en décimal.

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

Discussions similaires

  1. [float] 2 chiffres après la virgule
    Par log2n dans le forum Langage
    Réponses: 23
    Dernier message: 14/09/2010, 09h22
  2. Réponses: 4
    Dernier message: 11/08/2009, 17h23
  3. Réponses: 2
    Dernier message: 24/06/2008, 16h19
  4. Réponses: 4
    Dernier message: 06/12/2007, 20h23
  5. Tronquer Un Float à Trois chifres aprés la virgule
    Par wassimb dans le forum Langage
    Réponses: 20
    Dernier message: 27/11/2007, 17h33

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