如何计算打印语句中数字的位数?

时间:2016-09-27 17:27:26

标签: bc

在GNU bc中,我可以使用print语句打印一个值。根据值和其他参数,实际上将打印更多或更少的字符。如何确定将要打印的字符数,以便我可以在漂亮的列中打印数字表?

1 个答案:

答案 0 :(得分:0)

您可以使用特殊变量scale控制正在打印的字符数,该变量确定小数点后的位数 - 但它只会更改计算后存储的位数。例如:

scale = 3
var = 0.12345
var     /* Still shows five digits */
.12345
var/1   /* Now just three digits */
.123

但至少它不仅会截断,还会添加填充:

var = 0.12
var
.12
var/1
.120

如果要在脚本中使用它,您可能希望将除法的输出分配给变量本身:

var /= var/1
print var

对于比这更精细的东西,我将bc的输出分配给shell变量,并使用printf进行格式化。