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 :

java.lang.NumberFormatException: For input string:


Sujet :

Langage Java

  1. #1
    Membre habitué
    Femme Profil pro
    Inscrit en
    Mai 2012
    Messages
    360
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 360
    Points : 139
    Points
    139
    Par défaut java.lang.NumberFormatException: For input string:
    Bonjour,

    Je développe une application de gestion des horaires et une des fonctionnalité et de réaliser le calcul d'écart : je dois récupérer l'écart de l'année n-1 et de le rajouter à l'écart de l'année n

    Le soucis que je rencontre et que pour certains, j'ai un écart négatif
    (ex : - 2 :15 ), et j'aimerai savoir comment faire pour arriver à en faire le calcule car j'obtiens ce message d'erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    java.lang.NumberFormatException: For input string: "- 2 "

    Dans ma base de donnée, j'enregistre mon écart en tant que String (00:00). et donc j'ai fait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    String ecartReportAnnee = (String) row[10];
    int iEcartReportAnneeHeure = 0;
    int iEcartReportAnneeMin = 0;
    if(ecartReportAnnee !=null && !"".equals(ecartReportAnnee)){
    	String [] hecartReportAnneeTemps = ecartReportAnnee.split(":");
    	String ecartReportAnneeHeure = hecartReportAnneeTemps[0];
    	String ecartReportAnneeMin = hecartReportAnneeTemps[1];
    	iEcartReportAnneeHeure = Integer.parseInt(ecartReportAnneeHeure);
    	iEcartReportAnneeMin = Integer.parseInt(ecartReportAnneeMin);
    }
    dureeEcartAreporte = (iEcartReportAnneeHeure * 60) + iEcartReportAnneeMin;
    System.out.println("DureeEcartAreporte : "+dureeEcartAreporte);
     
    ecartMin = dureeDeTravJour  - dureeDeTravJourAfaire ;
    ecartMin = ecartMin  + dureeEcartAreporte ;
    Je vous remercie beaucoup pour votre aide

  2. #2
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    312
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 312
    Points : 533
    Points
    533
    Par défaut
    Bonjour, d'après ton message d'erreur, il y a des espaces dans ta String "- 2 ".

    Or la méthode Integer.parseInt() ne sait pas enlever les espaces.

    Une solution consiste à les enlever.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    public class EssaiNumber {
    	public static void main(String[] args) {
    		String s = "- 2 ";
    		int i = Integer.parseInt(s); //ne fonctionne pas
                    int i = Integer.parseInt(s.replace(" ",""));
    		System.out.println(i);
    	}
    }

  3. #3
    Membre habitué
    Femme Profil pro
    Inscrit en
    Mai 2012
    Messages
    360
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 360
    Points : 139
    Points
    139
    Par défaut
    Merci beaucoup pour votre réponse. Effectivement, je n'ai plus le message d'erreur

    Par contre, j'ai un autre soucis

    Dans mon exemple, une personne donnée à un écart de -2:15.

    En minute, cet écart doit donner -135. Or, avec mon système, j'obtiens -105
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    dureeEcartAreporte = (iEcartReportAnneeHeure * 60) + iEcartReportAnneeMin;
    En somme, le système fait -120 + 15 = 105.

    Comme puis je faire pour gérer les valeurs négatives ? Je sais que j'abuse mais cela m'enlèverait une grande aiguille du pied.

  4. #4
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 084
    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 084
    Points : 7 996
    Points
    7 996
    Par défaut
    -(120+15)=-135 ?

    Il suffit de regarder le signe, puis d'additionner en utilisant les valeurs absolues puis remettre le signe.

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

Discussions similaires

  1. java.lang.NumberFormatException: For input string: ""
    Par momjunior dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 24/04/2019, 00h50
  2. java.lang.NumberFormatException: For input string: "1 629.500"
    Par le_misterioso dans le forum Langage
    Réponses: 18
    Dernier message: 15/04/2011, 19h50
  3. Réponses: 0
    Dernier message: 06/05/2010, 10h43
  4. Réponses: 5
    Dernier message: 20/11/2009, 13h18
  5. Réponses: 1
    Dernier message: 15/01/2009, 11h22

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