高,我需要测试我的任意精度计算器,并且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)
您可以scale
在bc
手册页中阅读更多信息。