比较Solaris Smart OS上的十进制数

时间:2017-06-20 15:40:09

标签: bash

我试图使用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。

1 个答案:

答案 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

希望这会有所帮助。