0

我正在尝试通过 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)

4

1 回答 1

1

原因是什么?

Busyboxdc不接受任何-e参数。因为-e被解析为-后面的命令e-尝试弹出两个值并且堆栈为空。

我该如何解决?

只是:

dc "4000 0.531 / p"

无论如何,正确的方法是将数据通过管道传输到标准输入。

echo "4000 0.531 / p" | dc
于 2021-12-10T09:30:14.717 回答