#Bash bc格式化问题

时间:2018-02-02 07:35:35

标签: bash

如何仅在必要时输出正确的浮点数

E.g. 

---------
input: 1.5

output: 1.5

--------
input: 1

output: 1(but not 1.0)

--------

我认为这只是bash的一个简单问题,但我无法找到解决方法。

代码:

printf "%.1f" `echo "scale=1;3/2;"|bc`
printf "%.1f" `echo "scale=1;1;"|bc`

1 个答案:

答案 0 :(得分:0)

bc scale=1;按预期工作,只是不使用printf"%。1f"格式为十进制数,十进制后带有1个固定数字。

否则,如果变量包含带0的数字,则使用bash扩展和选项extglob进行修剪:

shopt -s extglob
x=1.0
echo "${x%%?(.)*(0)}"