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 :

Convertir (double) 1.0 en (int) 1


Sujet :

Java

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Analyste-programmeur
    Inscrit en
    Octobre 2014
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Analyste-programmeur

    Informations forums :
    Inscription : Octobre 2014
    Messages : 8
    Points : 5
    Points
    5
    Par défaut Convertir (double) 1.0 en (int) 1
    Bonsoir à tous, je débute en Java et j'aurais besoin de calculer une valeur décimale (donc du type double). Or, cette valeur peut, des fois, être du type int car elle peut être égale à 1 par exemple.
    Je me demandais s'il était possible de transformer :

    (double) 1.0 --> (int) 1
    (double) 1.7 --> (double) 1.7

    ??

    Merci d'avance !

  2. #2
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Hum. Ça n'a pas beaucoup de sens.
    Java est un langage statiquement typé. Ça veut dire que quand on veut avoir une valeur, elle peut être soit de type int, soit de type double, mais pas l'un ou l'autre.

    Il y a moyen de gruger bien sûr, mais je ne pense pas que ce soit une bonne idée. Il faudrait que tu nous dises ce que tu espérais en faire ensuite, de ta conversion.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Analyste-programmeur
    Inscrit en
    Octobre 2014
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Analyste-programmeur

    Informations forums :
    Inscription : Octobre 2014
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Hum et bien c'est censé afficher une équation du type ax²+bx+c=0 dont c'est l'utilisateur qui choisit a, b et c.

    Donc s'il rentre :

    a=9
    b=2.5
    c=2

    J'aimerai que, lorsque le message que j'ai demandé à afficher ("L'équation 9.0x²+2.5x+2.0=0 est elle celle que vous souhaitiez insérer ?") soit simple à lire et qu'on ait alors à la place : 9x²+2.5x+2, et non des chiffres significatifs donc.

  4. #4
    Membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Novembre 2013
    Messages : 49
    Points : 68
    Points
    68
    Par défaut
    Bonjour,

    Je ne sais pas si ton programme tourne en console ou est graphique. Dans tout les cas, la solution la plus "simple" (probablement pas la meilleure) est de passer par les String :

    • Tu récupères ce qu'a tapé l'utilisateur sous formes de String
    • Tu parcours la String a la recherche d'un point ou d'une virgule
    • en Fonction tu retournes Integer.valueOf(string) ou Double.valueOf(string)


    ça donnerai un truc du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Number convert(String nombreTapeParLUser){
        for(int i = 0; i < nombreTapeParLUser.length; i++){
            if(isPointOrVirgule(nombreTapeParLUser.charAt(i)){
                return Double.valueOf(nombreTapeParLUser);
            }
        }
        return Integer.valueOf(nombreTapeParLUser);
    }
    Et sur la suite du code, au moment d'afficher tu n'as plus qu'à tester si c'est une instance de Double ou d'Integer (instanceof)

    EDIT : Je viens d'y penser... y a encore plus simple avec String (plutôt que de faire la boucle pour tester si il y a un point ou une virgule) utilises plutôt indexOf de la class String

    http://docs.oracle.com/javase/7/docs...a.lang.String)

  5. #5
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Ça va pas, non ? DecimalFormat !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    DecimalFormat df = new DecimalFormat("0.###", new DecimalFormatSymbols(Locale.US)); // Locale US pour le . commme virgule
    double a = 2;
    double b = 2.5;
    System.out.println(df.format(a));
    System.out.println(df.format(b));
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  6. #6
    Membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Novembre 2013
    Messages : 49
    Points : 68
    Points
    68
    Par défaut
    Ha je connaissais pas DecimalFormat...

    Merci pour l'info thelvin

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Analyste-programmeur
    Inscrit en
    Octobre 2014
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Analyste-programmeur

    Informations forums :
    Inscription : Octobre 2014
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Merci les amis !

Discussions similaires

  1. Convertir double en int
    Par Hafa10 dans le forum Débuter avec Java
    Réponses: 3
    Dernier message: 27/05/2015, 14h25
  2. Convertir double en int
    Par emna hakem dans le forum C#
    Réponses: 3
    Dernier message: 10/03/2011, 13h03
  3. convertir double en int toujours à zero
    Par royreal dans le forum C#
    Réponses: 3
    Dernier message: 04/04/2010, 16h35
  4. [XSLT]Convertir une chaîne en float, int etc ... avec XSL
    Par wozzz dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 19/05/2006, 10h12
  5. [C#] convertir un nombre hexa en int
    Par linux dans le forum C#
    Réponses: 5
    Dernier message: 08/12/2005, 16h38

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