我正试图通过shell计算一个浮点数。当我执行以下行时,dc工具失败。
dc -e "4000 0.531 / p"
首先,我认为问题与浮动精度有关。然后,我尝试用一个整数来改变除法器。不幸的是,结果是一样的。
dc -e "4000 1000 / p"
上面的两个执行都给出了相同的错误:
dc:堆栈下溢
主机CPU是放置在Zynq Ultrascale+SoC内的ARM Cortex A53。原因是什么?我该如何解决?
其他信息
dc --version
的输出也给出相同的输出。
dc:堆栈下溢
幸运的是,dc --help
可以工作,并显示如下版本。
BusyBox v1.24.1(2021-12-08 08:10:27 UTC(多调用二进制。
type dc
的输出如下
dc被散列(/usr/bin/dc(
原因是什么?
Busyboxdc
不接受任何-e
参数。因为-e
被解析为-
,后面跟着命令e
,所以-
尝试弹出两个值,堆栈为空。
如何解决它?
只是:
dc "4000 0.531 / p"
正确的方法是通过管道将数据传输到stdin。
echo "4000 0.531 / p" | dc