比较浮点数时输出错误

比较浮点数时输出错误

我试图比较 bash 中的两个浮点数,但出了问题。这是基于解决方案的代码示例这里

num1=0.502E-01
num2=0.01
echo $num1'>'$num2 | bc -l
echo $num2'>'$num1 | bc -l

1我期望第一个回声和0第二个回声的输出,但我得到的0是第一个和1第二个回声。这个输入有什么问题吗?如何获得这些浮点数的一致比较?

答案1

awk如果从 shell 脚本调用,当然可以进行浮点比较。

num1=0.502E-01
num2=0.01
awk -v a="$num1" -v b="$num2" 'BEGIN{print(a>b)}'
1
awk -v a="$num1" -v b="$num2" 'BEGIN{print(b>a)}'
0

相关内容