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 avec "f"


Sujet :

Langage Java

  1. #1
    Membre �clair� Avatar de nicotine002
    Profil pro
    Inscrit en
    D�cembre 2005
    Messages
    577
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : D�cembre 2005
    Messages : 577
    Par d�faut Float avec "f"
    Bonjour,

    J'aurais voulu savoir � quoi exactement servait le fait de mettre "f" apres un num�rique?En fait voici un exmeple:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
     
    float a = 39.9;
    float b = 12;
     
    System.out.println(a-b);
    l� ca me met une erreur de compilation(loss of precision) alors je met ca � la place:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
     
    float a = (float)39.9;
    float b = (float)12;
    System.out.println(a-b);
    Et l� ca me marque comme r�sultat ca:27.900002
    Alors que si je remplace 39.9 par 39.2 ca fonctionne correctement,pourquoi?
    Et enfin j'ai vu qu'on pouvais mettre "f" � la fin de la d�claration pour dire que c'est un float mais dans ma declaration : float f = 39.9,normalement c'est d�j� un float non?

    Merci d'avance

  2. #2
    Membre Expert
    Avatar de natha
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 346
    D�tails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 346
    Par d�faut
    http://java.developpez.com/faq/java/...ecisionCalculs

    Pour tes floats et ton erreur de pr�cision c'est parce que 39.9 est un double et que 12 est un int. Tu l'obliges � les placer dans des floats et il aime pas �a. C'est pour �a qu'il faut mettre le f.

  3. #3
    Membre �prouv�
    Avatar de Deadpool
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    1 312
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 1 312
    Par d�faut Re: Float avec "f"
    Citation Envoy� par nicotine002
    Bonjour,

    J'aurais voulu savoir � quoi exactement servait le fait de mettre "f" apres un num�rique?En fait voici un exmeple:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
     
    float a = 39.9;
    float b = 12;
     
    System.out.println(a-b);
    l� ca me met une erreur de compilation(loss of precision) alors je met ca � la place:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
     
    float a = (float)39.9;
    float b = (float)12;
    System.out.println(a-b);
    Et l� ca me marque comme r�sultat ca:27.900002
    Alors que si je remplace 39.9 par 39.2 ca fonctionne correctement,pourquoi?
    Et enfin j'ai vu qu'on pouvais mettre "f" � la fin de la d�claration pour dire que c'est un float mais dans ma declaration : float f = 39.9,normalement c'est d�j� un float non?

    Merci d'avance
    Et bien non!

    les constantes du style :
    13.5
    14.2
    etc...

    sont du type double et non pas float ce qui explique que tu ai besoin de les caster en Float (puisque tu peux avoir une perte de pr�cision).

    Les constantes du type float s'�crive ainsi :

    13.5F
    14.2F
    etc...

    De m�me pour �crire les constantes doubles on peut aussi �crire :
    14.2D
    154.02D

    Cependant si on omet le suffixe � une constante num�rique � virgule, Java la consid�re par d�faut comme �tant une constante Double.

    Les constantes num�riques sans virgules sont elles du type int.

  4. #4
    Membre �clair� Avatar de nicotine002
    Profil pro
    Inscrit en
    D�cembre 2005
    Messages
    577
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : D�cembre 2005
    Messages : 577
    Par d�faut
    Ok merci de vos r�ponses,
    Mais je croyais que la seule diff�rence entre un float et un double �tait la pr�cision apr�s la virgule non?

  5. #5
    Membre �clair� Avatar de nicotine002
    Profil pro
    Inscrit en
    D�cembre 2005
    Messages
    577
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : D�cembre 2005
    Messages : 577
    Par d�faut
    En tout cas je suis un peu d�gout�, ca ce sont les bases quand m�me et je ne savais m�me pas qu'on pouvait mettre "f" ou "d" apr�s un num�rique

  6. #6
    Membre Expert
    Avatar de natha
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 346
    D�tails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 346
    Par d�faut
    Y a pas de quoi �tre d�gout�, les float et cie c'est pas ce qu'on utilise le plus en g�n�ral dans les programmes.

    De toute fa�on pour faire des calculs, il vaut mieux, selon moi, utiliser BigDecimal(String).

  7. #7
    Membre �clair� Avatar de nicotine002
    Profil pro
    Inscrit en
    D�cembre 2005
    Messages
    577
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : D�cembre 2005
    Messages : 577
    Par d�faut
    Ok merci, je pense que j'ai � peu pr�s tout compris.
    Avec les Bigdecimal ca fonctionne tr�s bien vu que dans mon projet je recupere presque tout le temps des String.
    Encore merci

+ R�pondre � la discussion
Cette discussion est r�solue.

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