Arrondir au demi-points supérieur [Résolu/Fermé]

Signaler
Messages postés
146
Date d'inscription
mardi 7 juin 2005
Statut
Membre
Dernière intervention
16 avril 2021
-
Messages postés
29801
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
12 mai 2021
-
Bonjour,
existe-t-il une fonction/commande (style bc (ou autre))
pouvant être plus simple que la partie awk ci-dessous ?

# arrondir au demi-point supérieur
echo "
41.25
16.51
16.50
16.99" | while read valeur ; do
awk '
{unite=(substr($1,1,2))};
{decimal=(substr($1,4,2))};
{if (decimal<=50){decimal=50}};
{if (decimal>50) {decimal=00;unite=unite+1}};
{print unite,decimal}'
done


A voir également:

3 réponses

Messages postés
29801
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
12 mai 2021
7 089
Ça me paraît suspect que chaque instruction soit dans un bloc "{ ... }" dédié.

En effet en awk, chaque bloc est précédé d'une condition (si elle est omise, celle-ci est toujours vrai) et si celle-ci est vrai, le bloc d'instruction écrit dans le bloc "{...}" est déclenché.

Ce que tu peux faire c'est faire un truc de ce genre :

echo "16.7" | awk '{print (int(2 * $1) + 1) / 2}'

Bonne chance
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci

Messages postés
146
Date d'inscription
mardi 7 juin 2005
Statut
Membre
Dernière intervention
16 avril 2021
23
ah oui, c'est cela que je veux.
en plus de cette façon, je peux l'affecter à certains champ, cool.
merci

pour les instruction mis dans des blocs, c'est pour que toutes les lignes soit passer au crible.
et cela me permet aussi de ne pas avoir de résultat autre que ce que j'indique dans le print.

bon bin, c'est résolu . Merci
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci

Messages postés
29801
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
12 mai 2021
7 089
Parfait, bonne continuation !