Problème calcul simple JAVA
Absot
Messages postés
777
Date d'inscription
Statut
Membre
Dernière intervention
-
Absot Messages postés 777 Date d'inscription Statut Membre Dernière intervention -
Absot Messages postés 777 Date d'inscription Statut Membre Dernière intervention -
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
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
A voir également:
- Problème calcul simple JAVA
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel - Télécharger - Jeux vidéo
- Eclipse java - Télécharger - Langages
- Iphone 14 simple - Guide
- Java apk - Télécharger - Langages
2 réponses
C'est certain que je peux pas voir ton code mais voici les possibilités d'erreur que j'entrevois:
- Tu fais les calculs avec des des nombres à virgules mais tu stockes ton résultat dans une variable int.
- Ton résultat est bien en nombre à virgule mais tu l'affiches avec le format entier.
Les double et les float sont bien des nombres à virgule donc il ne devrait pas y avoir de problèmes. Peut être est-ce une utilisation du mauvais formatage lors de l'output. Exemple:
au lieu de:
- Tu fais les calculs avec des des nombres à virgules mais tu stockes ton résultat dans une variable int.
- Ton résultat est bien en nombre à virgule mais tu l'affiches avec le format entier.
Les double et les float sont bien des nombres à virgule donc il ne devrait pas y avoir de problèmes. Peut être est-ce une utilisation du mauvais formatage lors de l'output. Exemple:
double resultat = 3.5; System.out.format("Resultat: %d", resultat);
au lieu de:
double resultat = 3.5; System.out.format("Resultat: %f", resultat);
Je récupère bien mes résultats dans mes floats.
Dans ma BDD, les prix sont de type float
Voilà mon code:
Je ne vois pas trop où est mon erreur.. :/
Dans ma BDD, les prix sont de type float
Voilà mon code:
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.. :/