1 我遇到了一个错误,可能是中的错误bc。我尝试在bash中的脚本上比较两个数字时遇到了它。事实证明,当我这样做时: echo "1.1E-2<1.1E-1" | bc -l 它返回1(按预期方式)。 但是当我这样做时,例如: echo "2.1E-2<1.1E-1" | bc -l 当它应返回1时将返回0(因为0.021小于0.11)。 我正在使用bub版本1.06.95和kubuntu 14.04 有没有人找到类似的结果?谁能想到解决方法? linux bash bc — 胡安·蒙蒂 source
3 bc 不了解指数表示法。 它可能将“ E”解释为一个十六进制数字,但是在较长的数字中,它似乎会将其转换为9(错误?),对于其他十六进制数字也是如此: bc -l <<< E-4 # 14 - 4 10 bc -l <<< 1E-1 # 19 - 1 18 bc -l <<< F.4E2 9.492 — choroba source
1 您的解决方法 echo "2.1*10^-2<1.1*10^-1" | bc -l 如果您要转换另一个文件的输出,则可以执行以下操作 echo "2.1E-2<1.1E-1" | sed 's/E/*10^/g' | bc -l 其中,与sed你去代替E与*10^由接受bc — 哈斯图尔 source