我想在if语句中比较两个十进制值,但它没有按预期给出。
假设,$ value变量中有一个十进制值。 if [ $value -eq 0.00 ]
$value
0.00
后,{{1}}无效。
请帮助这方面。 提前谢谢!
答案 0 :(得分:2)
有些shell支持浮动,有些则不支持:
在任何情况下,都存在-eq
运算符来执行整数之间的比较,而不是浮点数(即使在Zsh中)。
我不知道您使用的是哪种shell,但有两种解决方案。选择你喜欢的:避免外部依赖或操纵真实浮动。
这样,您可以直接将字符串与=
运算符(字符串相等运算符)进行比较。
A=1.1
B=1.1
if [ "$A" = "$B" ] ; then
echo 'Yeah!'
fi
bc
是一个可以在shell脚本表达式中调用(与任何其他程序一样)的计算器。
A=1.1
B=1.1
if [ "$(bc <<< "$A - $B")" = 0 ] ; then
echo 'Yeah!'
fi