Arrondir au demi-points supérieur

Résolu
trauqnej Messages postés 162 Statut Membre -  
mamiemando Messages postés 34186 Statut Modérateur -
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

mamiemando Messages postés 34186 Statut Modérateur 7 889
 
Ç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
trauqnej Messages postés 162 Statut Membre 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
mamiemando Messages postés 34186 Statut Modérateur 7 889
 
Parfait, bonne continuation !
0