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] pb avec l'opérateur '/'


Sujet :

Langage Java

  1. #1
    Membre du Club
    Inscrit en
    Mai 2004
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 62
    Points : 58
    Points
    58
    Par défaut [Float] pb avec l'opérateur '/'
    j'ai une fonction qui fait plusieurs calculs, dont des divisions, seulement ma division donne troujours un résultats = à 0.

    code source :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    float d = (float)(1/2) ;
     
    densite = (float)(nb_fil_total/ww);


    d =0.0
    densité=0.0 (nb_fil_total=400 et ww=1000)

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 19
    Points : 17
    Points
    17
    Par défaut
    Peut-être qu'il faudrait plutôt faire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    float d = ((float)1)/((float)2)
    En effet, ce que tu fais toi, c'est d'abord diviser 1 par 2, ce qui donne 0. Puis tu le cas en float, ce qui donnes toujours 0...

    Dans ton 2e exemple, il faudrait que nb_fil_total et ww soient définis comme des float

    Julien

  3. #3
    Membre actif
    Inscrit en
    Avril 2004
    Messages
    238
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 238
    Points : 265
    Points
    265
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    float d = (float)(1.0/2.0) ;
    Si tu divise deux int entre eux 1/2, le resultat sera un int donc pas de virgule. Tu peux caster dans tous les sens ca change rien.
    Par contre si tu divise deux doubles ou deux float entre eux (ou un double et un int), ton resultat sera un float ou un duble. La la virgule sera gardé.

    Fais un cast (en double ou float) avant de diviser sur un des deux parametres pour avoir on resultat en float ou double.

    Voila
    "Quand le sage montre la lune,
    L'idiot regarde le doigt."

  4. #4
    Futur Membre du Club
    Étudiant
    Inscrit en
    Mai 2004
    Messages
    10
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2004
    Messages : 10
    Points : 9
    Points
    9
    Par défaut
    ou sinon :

    La théorie, c'est quand on sait comment ça marche, mais que ça marche pas.
    La pratique, on sait pas comment ça marche, mais en tout cas, ça marche.
    Souvent, théorie et pratique se confondent : ça marche pas, et on sait pas pourquoi.

  5. #5
    Membre éprouvé
    Profil pro
    Architecte technique
    Inscrit en
    Mars 2002
    Messages
    966
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Mars 2002
    Messages : 966
    Points : 1 085
    Points
    1 085
    Par défaut
    Salut,

    Pour la centième fois Il n'est pas conseillé d'utiliser le type float pour des calculs mathématiques ou des clculs demandant une bonne précision, car le type float apporte forcémment des approximations, lui préférer java.math.BigDecimal

    A+

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

Discussions similaires

  1. Pb avec l'opérateur de comparaison IN
    Par petitnuage dans le forum Requêtes
    Réponses: 2
    Dernier message: 06/06/2006, 16h13
  2. Réponses: 12
    Dernier message: 11/04/2006, 11h41
  3. Problème avec les opérateurs
    Par jules_lenoir dans le forum Langage
    Réponses: 4
    Dernier message: 26/01/2006, 16h56
  4. Réponses: 1
    Dernier message: 21/01/2006, 18h00
  5. [Struts] pb avec l'opérateur '/'
    Par njac dans le forum Struts 1
    Réponses: 6
    Dernier message: 29/06/2004, 12h19

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