始终在bc中显示尾随零

时间:2016-05-22 14:46:49

标签: unix bc

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

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

我想得到的结果好像是2.000。我想用sed做这件事并不困难,但我是一个新手。

2 个答案:

答案 0 :(得分:0)

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

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

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

他们不会"花车"在bc - 他们"定点" - 小数点后带有固定位数的数字。在内部,它们只是整数除以固定功率10(由scale命令设置)

答案 1 :(得分:-1)

echo "scale=3; $1+$2" | 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