Ce que je t'invite également à comprendre, c'est l'importance des spécifications!!!
Lorsque tu t'adresses à un forum, il est important d'avoir les idées claires et de préciser clairement ce que tu veux!
ça permet aux contributeurs de gagner du temps et d'orienter la solution vers quelque chose qui te conviendra vraiment!
(NB: c'est pas tout jeune comme idée:
;) )Citation:
Avant donc que d'écrire, apprenez à penser (Chant I)
Ce que l'on conçoit bien s'énonce clairement,
Et les mots pour le dire arrivent aisément. (Chant I)
Donc, si j'ai bien compris, pour chaque nombre saisi par un utilisateur, il doit:
- être un nombre décimal sans signe
- être un nombre décimal sans signe avec 1 décimale (dans certains cas)
- être un nombre décimal sans signe avec 2 décimales (dans certains cas)
car j'imagine que, si l'utilisateur saisit quelque chose qui n'est pas un nombre, il faut le détecter et le prévenir (plutôt que de continuer les calculs comme si de rien n'était!).
Moi, je verrais bien un truc du genre:
Après, on peut affiner le "mauvais nombre" pour expliquer pourquoi on le rejette.Citation:
if [[ "${nombre}" =[0-9]*\.[0-9]]] ; then # BUG
# Nombre à 1 chiffre
elif [[ "${nombre}" = [0-9]*\.[0-9][0-9]]] ; then # BUG
# Nombre à 2 chiffres
else
# Mauvais nombre
fi
EDIT: Attention! C'est tout faux! Et, pour la clarté et la pérennité, je préfère rectifier (ce sont des expressions génériques et non des expressions régulières):
Code:
1
2
3
4
5
6
7 if [[ "${nombre}" = *([0-9]).[0-9] ]] ; then # Nombre à 1 chiffre elif [[ "${nombre}" = *([0-9]).[0-9][0-9] ]] ; then # Nombre à 2 chiffres else # Mauvais nombre fi

