2

我认为这个表达式应该返回0.000,而不是0

echo "scale = 3 ; 0 / 2" | bc

使用echo "scale = 3 ; scale(0 / 2)" | bc输出3,所以很明显比例是适用的,但它没有正确显示输出。

这是怎么回事?

4

1 回答 1

3

当除以 0 时,不会考虑比例,因为它肯定永远不会有任何十进制值。

你是对的,你的比例适用,例如尝试使用 echo "scale = 3; 1/2" | bc 输出为 0.500

此外,如果您仅使用刻度来避免截断,则可以使用 -l 选项,该选项将允许 20 个十进制数字。

这也证明了当您将 0 除以某物时,小数点在您键入时会被忽略:

echo "0/2" | bc - l

输出将为 0

echo "1/2" | bc - l

输出将为 .500000000000000000000

我希望我说得更清楚一点。

于 2014-08-19T22:36:12.023 回答