【发布时间】:2014-08-19 22:23:29
【问题描述】:
我认为这个表达式应该返回0.000,而不是0。
echo "scale = 3 ; 0 / 2" | bc
使用echo "scale = 3 ; scale(0 / 2)" | bc 输出3,所以很明显比例是适用,但它没有正确显示输出。
发生了什么事?
【问题讨论】:
我认为这个表达式应该返回0.000,而不是0。
echo "scale = 3 ; 0 / 2" | bc
使用echo "scale = 3 ; scale(0 / 2)" | bc 输出3,所以很明显比例是适用,但它没有正确显示输出。
发生了什么事?
【问题讨论】:
当用 0 除以某物时,不会考虑小数位数,因为它肯定永远不会有任何小数值。
您是对的,您的比例适用,例如尝试使用 echo "scale = 3; 1/2" | bc 输出为 .500
此外,如果您仅使用比例来避免截断,则可以使用 -l 选项,该选项将允许 20 位小数。
这也证明了当用 0 除以某物时,小数点在你输入时会被忽略:
echo "0/2" | bc - l
输出将为 0
echo "1/2" | bc - l
输出将是 .50000000000000000000
我希望我说得更清楚一点。
【讨论】: