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 :

Caster un String en int avec un arrondi


Sujet :

Langage Java

  1. #1
    Membre éclairé Avatar de Sennad
    Homme Profil pro
    Développeur Java
    Inscrit en
    Août 2014
    Messages
    180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2014
    Messages : 180
    Points : 703
    Points
    703
    Par défaut Caster un String en int avec un arrondi
    Salut à tous !

    J'ai un souci aujourd'hui assez basique..
    J'aimerai convertir un String en Int.
    Jusque-là ça va ^^ :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sizeToReturn = Integer.parseInt(size.substring(0, size.length() - 1));
    Où Size est le String a caster en Int dans sizeToReturn.
    Le String Size contiendra toujours quelque chose comme :
    "xxxxG"
    Où "xxx" correspond à des nombres, et le "G" à la fin de Giga.
    C'est pour cela que je fais size.substring(0, size.length() - 1), je vire le "G"
    Ça marche très bien, sauf que maintenant je peux avoir des chiffres a virgules, du style 85.6G, donc je vire le "G" mais je peux pas caster "85.6" en int.
    J'aimerai donc caster "87", faire un arrondi quoi ^^
    J'ai essayé de mettre d’abord dans un double pour pouvoir faire un Math.round() dessus mais je sais pas caster un String en double..
    Voilà mon problème, pas très compliqué mais je ne trouve pas :'(

    Merci !
    -----------------------------------------------------------------------------------------
    Don't play with fire if u don't wanna get burn ! Clinton - Fearon
    ____________________________________________________Pensez au

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

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

    Informations forums :
    Inscription : Août 2006
    Messages : 4 075
    Points : 7 981
    Points
    7 981
    Par défaut
    Bah, au lieu de Integer.parseInteger, tu utilises Double.parseDouble() parait puis tu arrondis ou tu fais ce qui te plaira.

    Peut être aussi qu'un DecimalFormat.parse() pourrait convenir pour éviter le substring....
    (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
    Membre expérimenté Avatar de Nico02
    Homme Profil pro
    Developpeur Java/JEE
    Inscrit en
    Février 2011
    Messages
    728
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Developpeur Java/JEE
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2011
    Messages : 728
    Points : 1 622
    Points
    1 622
    Par défaut
    Salut,

    Tout simplement

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    float f = Float.parseFloat( "8.6" );
    int i = Math.round(f);
     
    ou 
     
    double f = Double.parseDouble( "86.6" );
    long i = Math.round(f);
    Je te laisse enlever ton "G"

  4. #4
    Membre éclairé Avatar de Sennad
    Homme Profil pro
    Développeur Java
    Inscrit en
    Août 2014
    Messages
    180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2014
    Messages : 180
    Points : 703
    Points
    703
    Par défaut
    Salut,

    Merci pour vos réponses !

    Mais je peux pas faire int i = Math.round(double);
    Le retour de Math.round est un long, enfin c'est ce que me dis le compilot !
    Bon du coup j'ai fait ça et ça a l'air de marcher :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Double dbl = Double.parseDouble(size.substring(0, size.length() - 1));
    long lng = Math.round(dbl);
    sizeToReturn = (int) lng;
    Merci les gars
    -----------------------------------------------------------------------------------------
    Don't play with fire if u don't wanna get burn ! Clinton - Fearon
    ____________________________________________________Pensez au

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

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

    Informations forums :
    Inscription : Août 2006
    Messages : 4 075
    Points : 7 981
    Points
    7 981
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int lng = (int) Math.round(dbl);
    Tu as 2 méthode d'arrondis et selon le paramètre le retour change :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    public static int round(float a)
    public static long round(double a)
    (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

  6. #6
    Membre éclairé Avatar de Sennad
    Homme Profil pro
    Développeur Java
    Inscrit en
    Août 2014
    Messages
    180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2014
    Messages : 180
    Points : 703
    Points
    703
    Par défaut
    Ah ouais j'économise une ligne
    Merci
    -----------------------------------------------------------------------------------------
    Don't play with fire if u don't wanna get burn ! Clinton - Fearon
    ____________________________________________________Pensez au

  7. #7
    Membre éclairé Avatar de Sennad
    Homme Profil pro
    Développeur Java
    Inscrit en
    Août 2014
    Messages
    180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2014
    Messages : 180
    Points : 703
    Points
    703
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sizeToReturn = (int) Math.round(Double.parseDouble(size.substring(0, size.length() - 1)));
    Et voilà
    -----------------------------------------------------------------------------------------
    Don't play with fire if u don't wanna get burn ! Clinton - Fearon
    ____________________________________________________Pensez au

  8. #8
    Membre éclairé Avatar de Sennad
    Homme Profil pro
    Développeur Java
    Inscrit en
    Août 2014
    Messages
    180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2014
    Messages : 180
    Points : 703
    Points
    703
    Par défaut
    Tu as 2 méthode d'arrondis et selon le paramètre le retour change :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    public static int round(float a)
    public static long round(double a)
    Ah ok je comprend pourquoi je galere depuis une heure mdr ! Merci
    -----------------------------------------------------------------------------------------
    Don't play with fire if u don't wanna get burn ! Clinton - Fearon
    ____________________________________________________Pensez au

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

Discussions similaires

  1. [LINQ] OrderBy avec string as int
    Par Z4ng3tsu dans le forum C#
    Réponses: 10
    Dernier message: 17/11/2011, 18h27
  2. Soucis pour convertir string en int avec readline
    Par Angelssen dans le forum Windows Forms
    Réponses: 4
    Dernier message: 22/01/2010, 12h58
  3. Caster un string en int.
    Par pazze dans le forum Débuter
    Réponses: 5
    Dernier message: 14/11/2008, 12h35
  4. Réponses: 2
    Dernier message: 21/06/2004, 15h55
  5. [FLASH MX 2004] conversion string en int.
    Par calfater dans le forum Flash
    Réponses: 3
    Dernier message: 26/05/2004, 15h00

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