问候!
我使用bс在我的脚本中进行一些计算.例如:
bc
scale=6
1/2
.500000
Run Code Online (Sandbox Code Playgroud)
为了在我的脚本中进一步使用,我需要"0.500000"的".500000".
你能帮帮我,为我的情况配置bc输出数字格式吗?
nad*_*000 19
在一行中:
printf "%0.6f\n" $(bc -q <<< scale=6\;1/2)
Run Code Online (Sandbox Code Playgroud)
只需在 awk 中完成所有计算和输出:
float_scale=6
result=$(awk -v scale=$floatscale 'BEGIN { printf "%.*f\n", scale, 1/2 }')
Run Code Online (Sandbox Code Playgroud)
作为替代方案,如果您希望bc单独使用 AWK 或与“bc”一起使用而不是使用 AWK,则 Bashprintf支持浮点数,即使 Bash 的其余部分不支持。
result=$(echo "scale=$float_scale; $*" | bc -q 2>/dev/null)
result=$(printf '%*.*f' 0 "$float_scale" "$result")
Run Code Online (Sandbox Code Playgroud)
上面的第二行可以是:
printf -v $result '%*.*f' 0 "$float_scale" "$result"
Run Code Online (Sandbox Code Playgroud)
其工作方式有点像sprintf会创建子shell,但不会创建子shell。
快速而肮脏,因为scale仅适用于十进制数字并且bc似乎没有sprintf类似的功能:
$ bc
scale = 6
result = 1 / 2
if (0 <= result && result < 1) {
print "0"
}
print result;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
23483 次 |
| 最近记录: |