我想比较 if 语句中的两个十进制值,但它没有按预期给出。假设,我在 $value 变量中有一个十进制值。然后 if [ $value -eq 0.00 ]
不工作,即使$value
是0.00
。
请在这方面提供帮助。提前致谢!
我想比较 if 语句中的两个十进制值,但它没有按预期给出。假设,我在 $value 变量中有一个十进制值。然后 if [ $value -eq 0.00 ]
不工作,即使$value
是0.00
。
请在这方面提供帮助。提前致谢!
有些 shell 支持浮动,有些不支持:
在任何情况下,-eq
运算符的存在是为了执行整数之间的比较,而不是浮点数(即使在 Zsh 中)。
我不知道您使用的是哪种外壳,但有两种解决方案。选择您喜欢的:避免外部依赖或操纵真正的浮点数。
这样,您可以直接将字符串与=
运算符(字符串相等运算符)进行比较。
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