我刚刚开始使用 Gnu 的 bc,一开始就卡住了(非常令人沮丧……)。我想将两个数字相除并得到一个浮点数作为结果:
$bc
bc 1.06.94
Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'.
15/12
1
15.0/12.0
1
15.000000/12.000000
1
scale(15.00000)
5
手册页说,除法返回一个与初始值具有相同标度的数字。显然,这要么是不正确的,要么是我遗漏了什么。
谷歌搜索并没有带来任何新的见解(除了“BC”也可以代表“不列颠哥伦比亚省”)。
你看到我的错误了吗?更好的是,你知道任何关于 bc 的好的参考/教程吗?
答案1
您可以使用以下方式设置比例
scale=2
然后除法按预期进行:
scale=2
15/12
1.25
引用维基百科:
所有数字和变量内容都是任意精度数,其精度(小数位)由全局变量决定
scale
。
答案2
使用 bc -l,它预加载数学库并将默认比例设置为 20。
$ bc -l
bc 1.06
Copyright 1991-1994, 1997, 1998, 2000 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'.
4/3
1.33333333333333333333
答案3
答案4
如果这对任何人有帮助,我试图scale=2
默认设置安静模式,但似乎无法做到正确。
如果我设置BC_ENV_VARS="-q"
,我会得到安静模式,如果我设置BC_ENV_VARS="~/.bcrc"
,我可以在这个文件中设置scale=2
,但我无法打开安静模式(也许有办法,但我找不到它)。
最后我使用了 export BC_ENV_ARGS=~/.bcrc
(带有scale=2
)并将别名bc
改为bc -q
。