bc - 命令:没有给出适当的结果

San*_*osh 2 bc

我正在尝试在 linux 中使用 bc 命令进行简单的计算。一旦我想要所有小数位的值。其他时候我只想要整数部分

想要获得完整的小数位

$ echo "scale=10; ((900/1303) * 928)/600" | bc
1.0683039140
Run Code Online (Sandbox Code Playgroud)

现在我只想得到 1(整数)部分,省略小数部分,所以我尝试

$ echo "scale=0; ((900/1303) * 928)/600" | bc
0
Run Code Online (Sandbox Code Playgroud)

它如何显示零。它应该显示为 1

有人可以帮忙吗。在这种情况下,我不想使用 awk 或 sed 提取整数部分

ImH*_*ere 6

尝试:

echo "scale=20; a=((900/1303) * 928)/600; scale=0; a/1" | bc
Run Code Online (Sandbox Code Playgroud)

但是,这是一个截断小数,结果 like1.9999也会被截断1

但这似乎是你所要求的。


它如何显示零。...

因为900/1303(小数点为零)变成0. 将0被运送到最终结果。也许,如果您重新排序:

$ echo "( 900 * 928 / 1303 ) / 600" | bc
1
Run Code Online (Sandbox Code Playgroud)

...它应该显示 1

不,它不应该,如果中间除法是用零小数进行的。