2

0.000この式は、ではなくを返す必要があると思います0

echo "scale = 3 ; 0 / 2" | bc

echo "scale = 3 ; scale(0 / 2)" | bcoutputsを使用しているため、スケールがapply3であることは明らかですが、出力が正しく表示されていません。

どうしたの?

4

1 に答える 1

3

0 を何かで除算する場合、小数点以下の値が存在しないことが確実であるため、スケールは考慮されません。

そうです、スケールが適用されます。たとえば、 echo "scale = 3; 1/2" | で試してください。bc で、出力は .500 になります

また、切り捨てを避けるためだけに位取りを使用する場合は、-l オプションを使用して 20 桁の 10 進数を許可できます。

これは、0 を何かで除算するときに、次のように入力したときのように小数が無視されることも証明しています。

echo "0/2" | bc - l

出力は0になります

echo "1/2" | bc - l

出力は .5000000000000000000 になります

もう少し明確にしたことを願っています。

于 2014-08-19T22:36:12.023 に答える