Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我认为这个表达式应该返回0.000,而不是0。
0.000
0
echo "scale = 3 ; 0 / 2" | bc
使用echo "scale = 3 ; scale(0 / 2)" | bc输出3,所以很明显比例是适用的,但它没有正确显示输出。
echo "scale = 3 ; scale(0 / 2)" | bc
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
我希望我说得更清楚一点。