始终在 bc 中显示尾随零

Always show trailing zeros in bc

如何在整数中显示尾随零或如何将其转换为 bc 中的浮点数? 我知道 scale,但它只适用于浮点数:

$ echo "scale=3; 3/2" | bc
1.500
$ echo "scale=3; 1+1" | bc
2

我想要得到的结果看起来像 2.000。我想用sed做起来并不难,但我是新手。

echo "scale=3; +" | bc | sed 's/^[0-9]*$/&\.000/g'

对我来说效果很好:

$ echo "scale=3; 3/2" | bc | sed 's/^[0-9]*$/&\.000/g'
1.500
$ echo "scale=3; 3+2" | bc | sed 's/^[0-9]*$/&\.000/g'
5.000

除以 1 转换为带小数部分的数字:

$ echo "scale=3; 1+1/1" | bc
2.000

一旦完成任何类型的除法,如果该值最终成为输出的一部分,它将以指定的位数打印。

它们不是 bc 中的 "floats" -- 它们是 "fixed-point" -- 小数点后有固定位数的数字。在内部,它们只是整数除以 10 的固定幂(由 scale 命令设置)