Bonjour,

Le printf %.2f arrondit selon la 3ème décimale en occultant toutes les autres de droite.
De ce fait arrondir 0.444836 à 2 décimales, le résultat final est 0.44 au lieu de 0.45.

Donc cela m'oblige à arrondir à chaque décimale en boucle :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
round5=1000000; i=5; val=0.444836
val=$(printf %."$i"f $(echo "$val/1 +$i/($i*$round5)" | bc -l )) #val=0.44484
 
round5=$(echo "$round5 / 10" | bc); i=4; 
val=$(printf %."$i"f $(echo "$val/1 +$i/($i*$round5)" | bc -l )) #val=0.4448
 
printf %."3"f $(echo "0.4448/1 +3/(3*10000)" | bc -l )
0.445
 
printf %."2"f $(echo "0.445/1 +2/(2*1000)" | bc -l )
0,45
la valeur round5 permet à partir de 0.455 de donner 0.46 et non pas 0.45

Existe-t-il svp une manière de faire plus simple ? ou une commande permettant d'obtenir le même résultat que mon usine à gaz ?