Salut !

je fais actuellement un exercice en JAVA et ce qui me paraissait trop facile est en train de me rendre dingue ...

Ce que doit faire le programme :

Votre programme doit lire trois nombre décimaux : 1) la valeur actuelle de la taxe sur une marchandise (en pourcentage), 2) la nouvelle valeur de la taxe (en pourcentage), 3) puis le prix actuel de la marchandise, taxes comprises, en euros. Il devra calculer et afficher le prix de la marchandise avec la nouvelle valeur de la taxe, arrondi au centime près.

EXEMPLE 1

entrée :
5.5
19.6
24.9

sortie :
28.23

EXEMPLE 2

entrée :
21.5
21.5
19.99

sortie :
19.99


Trop facile, je me suis dis: juste du calcul de %... argghh en fait ce qui me casse la tête c'est la précision demandée. Voilà mon programme:

(Une petite précision: je dois le faire avec des Doubles ou int uniquement -pas de float ou DecimalFormat, et je peux utiliser ceil(), floor(), round() -si nécéssaire ou des casts)

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
 
 
public class maClasse {
 
 
    public static void main(String[] args) 
    {
    	Scanner sc = new Scanner(System.in);
 
    	double currentTax = (sc.nextDouble())/100;
    	double newTax = (sc.nextDouble())/100;
    	double marchandiseAvecTaxe = sc.nextDouble();
 
    	double prixHt = (marchandiseAvecTaxe-(marchandiseAvecTaxe*currentTax));  
    	System.out.println("Prix HT : ( "+marchandiseAvecTaxe+" - "+"( "+marchandiseAvecTaxe+" x "+currentTax+" )"+" = "+prixHt);
 
    	double newPrice = (prixHt+(prixHt*newTax));
    	System.out.println("Prix TTC : ( "+prixHt+" + ( "+prixHt+" x "+newTax+" )"+" = "+newPrice);
 
 
    }
 
 
 
}


Par la même occasion quelqu'un saurait-il pourquoi mon Eclipse n'accepte que les entrées (pour les décimaux) avec une virgule (exemple: 2,7) ou lieu du point habituel (exemple: 2.7). Il m'affiche une erreur de type:

Exception in thread "main" java.util.InputMismatchException
at java.util.Scanner.throwFor(Unknown Source)
at java.util.Scanner.next(Unknown Source)
at java.util.Scanner.nextDouble(Unknown Source)
at maClasse.main(maClasse.java:12)


dès que je rentre un point dans un décimal... En général c'est plutôt l'inverse non ? (Une option a configurer dans Eclipse ???)


Merci !!!