bonjour, mon exercice est :
Comportement attendu
Attention, il importe que votre programme respecte strictement les formats et comportements présentés ici.

Le programme accepte un nombre décimal suivi d'un retour chariot et affiche la représentation normalisée suivie d'un retour chariot. Si l'entrée ne contient pas un nombre décimal ou contient un nombre décimal mal formé, le programme doit afficher une ligne terminant par 'Erreur' suivi d'un retour chariot.
Exemples

entrée: 0
sortie: 0

entrée: 5
sortie: 0.5e1

entrée: 100
sortie: 0.1e3

entrée: 0.55
sortie: 0.55

entrée: 0.007
sortie: 0.7e-2

entrée: -10.00
sortie: -0.1e2

entrée: -01020.03040
sortie: -0.10200304e4
Fin exercice

NB/ La forme normalisée à utiliser dans ce TP est "0.XXXeYYY" qui peut être précédée du signe moins (-) où :

XXX (appelée mantisse) est une séquence de chiffres de 0 à 9 qui ne doit ni commencer ni se terminer par un 0.
YYY (appelé exposant) est une séquence de chiffres de 0 à 9 qui ne doit pas commencer par un 0 et qui peut être précédée du signe moins (-).
Si le nombre à représenter vaut 0, la forme normalisée est juste "0" (sans signe ni exposant).
Si l'exposant vaut zéro, la partie exposant (incluant le 'e') est omise (la forme normalisée est juste "0.XXX" éventuellement précédée du signe moins).

Le code que j'ai fait jusqu'à présent est (juste la lecture de l'entrée clavier et tester si un nombre ou pas, reste comment traduire ce nombre souos la forme demandée?):
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
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.text.DecimalFormat;
import java.text.NumberFormat;
import java.text.ParseException;
 
 
public class INF2170_TP1 {
//final String s_TP_Name = "INF2170_TP1";
 
	/**Cette fonction teste si la valeur donnée
         * en String est numérique ou pas
         * @param p_Number de type String
         */
static boolean is_number(String p_Number){
	boolean b_Number = false;
 
	NumberFormat format = new DecimalFormat();
 
	try {
		format.parse(p_Number).doubleValue();
		b_Number = true;
	} catch (ParseException e) {
		b_Number = false;
	}
 
	return b_Number;
}
 
	/**
         * @param args
         */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		System.out.println("INF2170_TP1");
		System.out.println("Veuillez donner un nombre décimal: ");
 
		// pour récupérer les données user et les mettre en mémoire
		InputStreamReader s_val_in = new InputStreamReader(System.in);
		BufferedReader s_val_tampon = new BufferedReader(s_val_in);
 
		// pour récupérer les données de la mémoire
		String s_str = null;
 
		try {
			s_str = s_val_tampon.readLine();
 
			if (!is_number(s_str)){
				System.out.println("la valeur " + s_str + " n'est pas un nombre");
			}
			else{
				System.out.println("Vous avez donné: " + s_str);
			}
		} catch (IOException e1) {
				// TODO Auto-generated catch block
				e1.printStackTrace();
		}
 
 
	}
}
Merci