Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 为什么';t bc是否显示此表达式结果的比例?_Bash_Unix_Posix_Bc - Fatal编程技术网

Bash 为什么';t bc是否显示此表达式结果的比例?

Bash 为什么';t bc是否显示此表达式结果的比例?,bash,unix,posix,bc,Bash,Unix,Posix,Bc,我认为这个表达式应该返回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 此外,如果使用比例只是为了避免截断,则可以使用允许20位小数的-l选项 这也证明了当将0除以某物时,小数点

我认为这个表达式应该返回
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

此外,如果使用比例只是为了避免截断,则可以使用允许20位小数的-l选项

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

echo "0/2" | bc - l
输出将为0

echo "1/2" | bc - l
输出将为.50000000000000


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

虽然我希望格式一致,但这肯定是有道理的。