我有两个数字,$ value和$ precision。我需要对这些数字进行“浮点”表示(当然输出实际上是一个字符串,因为这是bash)。
$ precision告诉我这个数字应该有多少小数点。
示例:
$value=123, $precision=2
这应该输出“1.23”。
如何从Bash优雅地完成这项工作?我正在看“bc”手册页,但我真的没有看到任何方式。我假设最简单的方法是将输入值视为字符串并插入char'。'以某种方式处于正确的位置。
答案 0 :(得分:4)
在bc
:
bc <<EOF
scale = $precision
$value / (10 ^ $precision)
EOF
在sed
:
sed -e "s/[0-9]\{$precision\}$/.&/" <<< "$value"
答案 1 :(得分:2)
好的,所以我发现了Bash的一些字符串操作帮助...这样做的伎俩,但它并不漂亮。在这里张贴后代。
lastIndex=$((${#value}-1))
dotIndex=$((${#value}-$precision))
decvalue=${value:0:$dotIndex}.${value:$dotIndex:$lastIndex}