回答:
引数でbc出力するスケールを制御できscale=<#>ます。
$ echo "scale=10; 5.1234 * 5.5678" | bc
28.52606652
$ echo "scale=5; 5.1234 * 5.5678" | bc
28.52606
あなたの例を使用して:
$ bc <<< 'scale=2; 1.5 * 1.5'
2.25
-lデフォルトの0ではなく、スケールを20に初期化するスイッチ(@manatworkに感謝)を使用することもできます。次に例を示します。
$ bc -l <<< '1.5 * 1.5'
2.25
$ bc -l <<< '1.52 * 1.52'
2.3104
詳細についてscaleは、bcmanページを参照してください。
min(max(sx,sy,scale),sx+sy)どこsxとsyのスケールですxとyの中でx*y。設定scale=scale(x)+scale(y)により、必要な最大精度が得られます。スケールを大きい数値(1000など)に設定しても、結果のスケールは増加しません。スケール変数はsにのみ直接影響します。除算の結果scale=1000; a/1は、前のスケールが何であっても、(ドットの後の)10進1000桁の結果を作成します。