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 :

float vs double


Sujet :

avec Java

  1. #1
    Membre confirmé
    Femme Profil pro
    informatique
    Inscrit en
    Janvier 2018
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : informatique

    Informations forums :
    Inscription : Janvier 2018
    Messages : 55
    Par défaut float vs double
    salut

    svp j'arrive pas a différencier entre le type double et float dans java , je ne sais pas quand ,je déclare une variable double ou bien float ?

    svp j'ai besoin de votre aide , meme c que j'ai vue plusieurs sites et livres sur ca mais toujours j'arrive pas a comprendre !

    je sais que le double est sur 4bits et le float sur 8bits ,mais......

  2. #2
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 093
    Par défaut
    La différence majeure est que le type double est beaucoup plus précis que le type float car il utiliser 2 fois plus de bit pour representer une valeur.

    https://java.developpez.com/faq/java...es-des-nombres

    D'ailleurs attention, car ce ne sont pas des bits, mais des bytes. (4bytes pour float, et 8bytes pour double)
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 576
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 576
    Par défaut
    Et sinon, pour savoir s'il faut utiliser float ou double, voici un raisonnement qui marche :

    - float propose une précision numérique ridicule. Bien trop faible pour se permettre de prendre le risque d'afficher des résultats numériques calculés en float à l'écran.
    - double prend le double d'espace mémoire à stocker, et de temps processeur à calculer.

    Conclusion : ne jamais utiliser float, sauf dans les cas où on se fiche de la précision. Par exemple quand on fait des calculs de traitement d'image, la précision d'un double est rarement utile, et utiliser des float permet de prendre un peu moins de mémoire et de temps.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  4. #4
    Membre Expert
    Avatar de professeur shadoko
    Homme Profil pro
    retraité nostalgique Java SE
    Inscrit en
    Juillet 2006
    Messages
    1 257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : retraité nostalgique Java SE

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 257
    Par défaut
    Citation Envoyé par thelvin Voir le message
    utiliser des float permet de prendre un peu moins de mémoire et de temps.
    est-ce exact? Je croyais (peut être à tort) que de toute manière l'exécuteur de la machine virtuelle repassait ces floats en double pour le coprocesseur et que donc les floats était essentiellement là pour des raisons de compatibilité avec des codes "historiques" ... Mais je peux me tromper ...

  5. #5
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 576
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 576
    Par défaut
    Je ne sais pas trop comment vérifier ça de façon définitive, donc ça prendrait des plombes.
    Mais un simple jeu de benchmarks montre clairement qu'il n'y a pas de différence en temps de traitement entre double et float, au moins pour les opérations simples, et donc ça semble raisonnable d'en déduire qu'en effet, la JVM traduit tout en double natifs.

    Pour la mémoire par contre, on passe clairement et sans surprise du simple au double. Je reconnais qu'à mon sens c'était là le seul point important, et du coup j'ai pas trop fait attention au reste. J'aurais mieux fait de m'abstenir de parler d'un reste que je n'avais même pas vérifié.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  6. #6
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 093
    Par défaut
    Citation Envoyé par thelvin Voir le message
    Mais un simple jeu de benchmarks montre clairement qu'il n'y a pas de différence en temps de traitement entre double et float, au moins pour les opérations simples, et donc ça semble raisonnable d'en déduire qu'en effet, la JVM traduit tout en double natifs.
    Mmmm pas 100% d'accord

    Je viens d'essayer ceci : http://web.archive.org/web/201503102...oat-and-double

    En modifiant la JVM pour avoir du 32 ou du 64 bit, ainsi que du Float ou du Double.

    Le temps pour les float semble plus court, l'ecart etant encore plus grand si on passe de 32 a 64 bit sur le type float.
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

Discussions similaires

  1. float ou double, mauvais format?
    Par didier17062006 dans le forum C++Builder
    Réponses: 6
    Dernier message: 18/10/2006, 12h42
  2. [débutant] Convesion Float to double
    Par cyrill.gremaud dans le forum Langage
    Réponses: 7
    Dernier message: 12/07/2006, 09h06
  3. Problème conversion float vers double
    Par jhenaff dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 27/01/2006, 10h39
  4. Conversion d'un tableau de float en double ?
    Par alex6891 dans le forum C++
    Réponses: 5
    Dernier message: 05/01/2006, 06h04
  5. float ou double ?
    Par Neilos dans le forum C++Builder
    Réponses: 4
    Dernier message: 16/01/2004, 20h12

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