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 :

Problème calcul simple JAVA


Sujet :

Java

  1. #1
    Rédacteur

    Homme Profil pro
    Technical Lead Salesforce
    Inscrit en
    Février 2009
    Messages
    563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Technical Lead Salesforce

    Informations forums :
    Inscription : Février 2009
    Messages : 563
    Points : 1 667
    Points
    1 667
    Par défaut Problème calcul simple JAVA
    Bonjour, j'ai créé une petit application en JAVA où le but est de choisir son menu, donc on le choisit tout ça et mon problème est au moment j'affiche le prix du menu qui comprend un repas principal, une boisson et un dessert.

    Ca ne m'affiche que les entiers, je veux dire par là par exemple si je fais l'addition de 9.50 + 3.50, il me retournera 12 au lieu de 13 car il fait l'addition de 9 + 3 et non 9.50 + 3.50.

    J'utilise des variables de type float, j'ai également essayé avec des variables de type double mais c'est la même chose, comment je pourrais faire?

    Merci de votre aide
    - Mes articles
    - Consultant technique Salesforce
    - Salesforce Certified Administrator
    - Salesforce Certified Platform App Builder
    - Salesforce Certified Developper I
    - Salesforce Certified Sales Cloud
    - Salesforce Certified Service Cloud

  2. #2
    Membre averti
    Inscrit en
    Avril 2010
    Messages
    239
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 239
    Points : 313
    Points
    313
    Par défaut
    Bonjour,

    Pouvez-vous nous montrer votre code de calcul et d'affichage ?

  3. #3
    Rédacteur

    Homme Profil pro
    Technical Lead Salesforce
    Inscrit en
    Février 2009
    Messages
    563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Technical Lead Salesforce

    Informations forums :
    Inscription : Février 2009
    Messages : 563
    Points : 1 667
    Points
    1 667
    Par défaut
    Dans ma BDD, mes prix sont bien de type float

    Voilà mon code

    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
     
     
    private String repas;  
    private String boisson;  
    private String dessert;  
    private String query;  
    private int idRepas;  
    private int idBoisson;  
    private int idDessert;  
    private int idFacture;  
    private int nombreRepas;  
    private int nombreBoisson;  
    private int nombreDessert;  
    private double prix;  
    private double prixFacture;  
     
     
    repas = choiceRepas.getSelectedItem();  
    boisson = choiceBoisson.getSelectedItem();  
    dessert = choiceDessert.getSelectedItem();  
    nombreRepas = Integer.parseInt(nombreChoiceRepas.getSelectedItem());  
    nombreBoisson = Integer.parseInt(nombreChoiceBoisson.getSelectedItem());  
    nombreDessert = Integer.parseInt(nombreChoiceDessert.getSelectedItem());  
    idRepas = retourneId(repas, "Repas");  
    idBoisson = retourneId(boisson, "Boisson");  
    idDessert = retourneId(dessert, "Dessert");  
    prix = retournePrix(repas, "Repas")*nombreRepas;  
    System.out.println("Prix du repas : " + prix);  
    prix = prix+(retournePrix(boisson, "Boisson")*nombreBoisson);  
    System.out.println("Prix du repas et de la boisson : " + prix);  
    prix = prix+(retournePrix(dessert, "Dessert")*nombreDessert);  
     
     
    public float retournePrix(String nom, String categorie)  
    {  
     String nomAliment = nom;   
     String categorieAliment = categorie;  
     float prix = 0;   
     String sql = "";  
     if (categorieAliment == "Boisson")  
     {  
      sql = "SELECT * FROM Boisson WHERE nom = '" + nomAliment + "';";  
     }else if (categorieAliment == "Repas")  
     {  
      sql = "SELECT * FROM Repas WHERE nom = '" + nomAliment + "';";  
     }else  
     {  
      sql = "SELECT * FROM Dessert WHERE nom = '" + nomAliment + "';";  
     }  
     final String driver ="com.mysql.jdbc.Driver";  
     final String url = "jdbc:mysql://127.0.0.1/***";  
     final String user = "***";  
     final String passwd = "***";  
     Connection con = null;  
     Statement state = null;  
     ResultSet result = null;  
     
     try  
     {  
      // Chargement du driver  
      Class.forName(driver).newInstance();  
      // Connexion � la BDD  
      con = DriverManager.getConnection(url, user, passwd);  
      // Creation de l'objet Statement  
      state = con.createStatement();  
      // Execution de la requete  
      // rs contient le r�sultat de la requete SQL  
      result = state.executeQuery(sql);  
      System.out.println(sql);  
      while (result.next())   
       {  
       prix = result.getFloat("prix");  
       }  
     
      // Fermeture des objets utilis�s  
      result.close();  
      state.close();  
     }  
     catch(ClassNotFoundException e)  
     {  
      System.err.println("Class non trouvée " + driver);  
     }  
     catch (SQLException e)  
     {  
      System.err.println("SQL erreur : " + sql + " " + e.getMessage());  
     }  
     catch (Exception e)   
     {  
      e.printStackTrace();  
     }  
     finally  
     {  
      try  
      {  
       if (con != null)  
       {  
        con.close();  
       }  
      }  
      catch (Exception e)  
      {  
       System.err.println(e);  
      }  
     }  
     return prix;   
    }
    Je ne vois pas trop où est mon erreur.. :/
    - Mes articles
    - Consultant technique Salesforce
    - Salesforce Certified Administrator
    - Salesforce Certified Platform App Builder
    - Salesforce Certified Developper I
    - Salesforce Certified Sales Cloud
    - Salesforce Certified Service Cloud

  4. #4
    Rédacteur

    Homme Profil pro
    Technical Lead Salesforce
    Inscrit en
    Février 2009
    Messages
    563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Technical Lead Salesforce

    Informations forums :
    Inscription : Février 2009
    Messages : 563
    Points : 1 667
    Points
    1 667
    Par défaut
    J'ai résolu mon problème en rajoutant 3 variables, une pour chaque prix et après j'additionne le tout et ça fonctionne, je comprends pas trop pourquoi mais bon ça marche en tout cas.
    - Mes articles
    - Consultant technique Salesforce
    - Salesforce Certified Administrator
    - Salesforce Certified Platform App Builder
    - Salesforce Certified Developper I
    - Salesforce Certified Sales Cloud
    - Salesforce Certified Service Cloud

  5. #5
    Membre averti
    Inscrit en
    Avril 2010
    Messages
    239
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 239
    Points : 313
    Points
    313
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    ...
    private int nombreRepas;
    ...
    private double prix;
    ...
    prix = retournePrix(repas, "Repas")*nombreRepas;
    ...
    public float retournePrix(String nom, String categorie)
    ...
    Vous multipliez un float (le résultat de retournePrix) par un int (nombreRepas) pour le stocker dans un double (prix) ?
    Ca fait beaucoup de modification de types non ?
    Ceci serait mieux de tout mettre au même type, ou bien de faire ainsi (avec des cast si vous voulez conserver vos types) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    ...
    prix = (double)(retournePrix(repas, "Repas")* ((float)nombreRepas));
    ...

Discussions similaires

  1. problème avec un calcul simple avec 13 chiffres
    Par mysterauto dans le forum Excel
    Réponses: 5
    Dernier message: 05/04/2014, 23h23
  2. Problème calcul simple fonction
    Par snt13 dans le forum MATLAB
    Réponses: 12
    Dernier message: 02/08/2011, 11h15
  3. Probleme de calcul simple en Java
    Par Dazdh dans le forum Général Java
    Réponses: 4
    Dernier message: 03/03/2009, 15h35
  4. [Débutant] Problème servlet simple
    Par davycrocket dans le forum Servlets/JSP
    Réponses: 7
    Dernier message: 30/06/2004, 09h24

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