我试图使用bc -l比较两个浮点数据类型的数量,但它没有按预期工作,我看到以下错误。这是在Solaris计算机上运行的。
$ echo "10.0>10.1" | bc
第1行语法错误,电传打字
操作系统:Solaris
$ uname -a
SunOS cmh-contactssdd-001 5.11 joyent_20170315T185612Z i86pc i386 i86pc Solaris
但是,如果我在我的本地Mac OSX上运行它,它会按预期工作。
C02RR4URG8WN:roles sgone$ echo "10.0>10.1" | bc
0
对此有任何建议表示赞赏。如果有其他方法可用于比较十进制数字,请告诉我。
谢谢,
Sajan Gone。
答案 0 :(得分:0)
您可以尝试四舍五入到最接近的数字,然后在SunOS中进行比较。
x=10.3
y=11
x=${x%%.*}
if [ "$x" -gt "$y" ]; then
echo "x is greater"
else
echo "y is greater"
fi
在Linux中,当尝试比较两个浮点数或任意两个数字时:
if [ 1 -eq "$(echo "${x} > ${y}" | bc)" ]; then
echo "x is greater"
else
echo "y is greater"
fi
希望这会有所帮助。