You are viewing a single comment's thread. Return to all comments →
When you use
`echo "scale=3; `$sum/$`x | bc"`
your expected result would be with 3 decimal points. You should note that there is there is no rounding off done by bc.
Now in bash you can use the printf function to do the rounding off that you require. Use scale = 4 and then use printf to round off to 3 decimal points using "%.3f"
scale = 4
then why not only using printf?
just avoid the scale.
printf "%.3f" will be sufficient
Avoiding scale defaults to scale=0, so that won't work.
then whats the use of setting precision in printf
It rounds the number got from bc to 3 decimal points. Bc does no rounding.
As @bewuethr mentions avoiding scale won't work, but if you used bc -l it would as this defaults to scale of 20.
printf "%.3f\n" exp | bc -l)
There is a $ before the parenthesis that is being interpreted in the comment
printf "%.3f" $(echo $exp | bc -l)
Why do you need the "$" before the echo part?
above command not able to write in STDOUT
echo $num | bc -l | xargs printf "%.*f\n" 3