BC——自动全精度乘法

PSk*_*cik 12 bc calculator

高,我需要测试我的任意精度计算器,并且bc似乎是一个很好的比较标准,但是,bc确实将每个乘法的结果截断为每个所涉及的操作数的最大比例。

有没有一种快速的方法来关闭它或自动将每个乘法的比例设置为因子的比例总和,以便它不会失去任何精度?

如果您对此有更优雅的解决方案,涉及除 之外的其他内容bc,我将不胜感激您的分享。

例子:

$ bc <<< '1.5 * 1.5'
2.2
Run Code Online (Sandbox Code Playgroud)

真正的答案是 2.25。

slm*_*slm 13

您可以bc使用scale=<#>参数控制输出的比例。

$ echo "scale=10; 5.1234 * 5.5678" | bc
28.52606652

$ echo "scale=5; 5.1234 * 5.5678" | bc
28.52606
Run Code Online (Sandbox Code Playgroud)

使用您的示例:

$ bc <<< 'scale=2; 1.5 * 1.5'
2.25
Run Code Online (Sandbox Code Playgroud)

您还可以使用-l开关(感谢@manatwork)将比例初始化为 20 而不是默认值 0。例如:

$ bc -l <<< '1.5 * 1.5'
2.25

$ bc -l <<< '1.52 * 1.52'
2.3104
Run Code Online (Sandbox Code Playgroud)

您可以scalebc手册页中阅读更多信息。

  • 或者更短:`bc -l`。“ **-l** (字母 ell。)定义数学函数并将比例初始化为 20,而不是默认的零” – [`bc` 规范](http://pubs.opengroup.org/onlinepubs/009604499 /utilities/bc.html) (6认同)