awk:
float_scale=6
result=$(awk -v scale=$floatscale 'BEGIN { printf "%.*f\n", scale, 1/2 }')
, bc, AWK "bc", Bash printf , Bash .
result=$(echo "scale=$float_scale; $*" | bc -q 2>/dev/null)
result=$(printf '%*.*f' 0 "$float_scale" "$result")
:
printf -v $result '%*.*f' 0 "$float_scale" "$result"
sprintf .