Décimal
Résolu
Alech
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour je me permet de rouvrir un post car j'ai cliqué trop vite sur résoudre.
Je cherche toujours à tester une variable obtenu par un "read" pour vérifier qu'il s'agit bien d'un entier ou d'un décimal pour continuer (0 compris).
Actuellement j'ai ceci:
if [ ! -z $(echo "$interval" | grep -o "[0-9][0-9]*$") ]
Qui fonctionne presque parfaitement sauf si l'on rentre un caractère et un chiffre -> a1
Je cherche donc soit un complément qui assure qu'il n'y a que des chiffres en plus de potentiel . décimal soit une autre méthode.
Je vous remercie d'avance pour le sauvetage de vie :p
Je cherche toujours à tester une variable obtenu par un "read" pour vérifier qu'il s'agit bien d'un entier ou d'un décimal pour continuer (0 compris).
Actuellement j'ai ceci:
if [ ! -z $(echo "$interval" | grep -o "[0-9][0-9]*$") ]
Qui fonctionne presque parfaitement sauf si l'on rentre un caractère et un chiffre -> a1
Je cherche donc soit un complément qui assure qu'il n'y a que des chiffres en plus de potentiel . décimal soit une autre méthode.
Je vous remercie d'avance pour le sauvetage de vie :p
A voir également:
- Décimal
- Casio fx-92 affichage décimal - Forum Matériel & Système
- Arrondi javascript 2 decimal ✓ - Forum Javascript
- Arrondi javascript 2 décimal - Forum Webmastering
- Arrondir à 2 décimales après la virgule - calculateur javascript ✓ - Forum Javascript
- Ti collège plus affichage décimal ✓ - Forum Matériel & Système
3 réponses
Salut,
Il suffit de rajouter "\b" ou "^" à la syntaxe de grep :
Il suffit de rajouter "\b" ou "^" à la syntaxe de grep :
grep -o "\b[0-9][0-9]*$"
grep -o "^[0-9][0-9]*$"
salut,
for i in 12 12.5 12,5 a12 12b
do
test "$i" = "$(bc -l <<<$i 2>/dev/null)" \
&& echo "$i est un nombre valide" \
|| echo "$i n'est pas un nombre valide"
done
12 est un nombre valide
12.5 est un nombre valide
12,5 n'est pas un nombre valide
a12 n'est pas un nombre valide
12b n'est pas un nombre valide
malheureusement avec le \b une lettre et un chiffre ne marche effectivement plus cependant sous la forme a2.4 cela fonctionne.
La seconde méthode ne fonctionne plus avec les décimaux.