Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Mathematical expression in print command in Linux

I can't get my mistake in this command:

a=2
b=5
c=3
printf "%.2f\t" "'$a'+'$c'*'$b'" > ofile.txt

I am getting the value as 50.00. But I should get it 17.00.

How to do this when a, b, c are floating values? e.g. a=2.4, b=5.1 and c=3.2

like image 634
Kay Avatar asked Mar 16 '23 18:03

Kay


1 Answers

Your 2nd argument to printf is interpreted as the string '2', which has an ascii value of 50. If you want to do arithmetic, use arithmetic evaluation in bash:

printf "%.2f\t" "$((a+b*c))" > ofile.txt
like image 83
Denis Avatar answered Mar 23 '23 07:03

Denis