How to compare two floating-point values in shell script
12,425
You can compare floating-point numbers using expr(1)
:
: nr@yorkie 3724 ; expr 3.1 '<' 3.3
1
: nr@yorkie 3725 ; expr 3.1 '<' 3.09
0
You can also have bc
do the comparisons as well as the calculations:
if [ "$(echo $result1 '<' $result2 | bc -l)" -eq 1 ];then ... fi
Finally, ksh93 can do arithmetic evaluation $(($result1 < $result2))
with floating-point numbers, although bash cannot.
Author by
Reem
Updated on June 04, 2022Comments
-
Reem almost 2 years
I had to do a division in shell script and the best way was:
result1=`echo "scale=3; ($var1 / $total) * 100"| bc -l` result2=`echo "scale=3; ($var2 / $total) * 100"| bc -l`
but I want to compare the values of
$result1
and$result2
Using
if test $result1 -lt $result2
orif [ $result1 -gt $result2 ]
didn't work :(Any idea how to do that?