如何使用 shell 脚本来近似浮点数(例如,小数点后最多 4 位数字)?我有两个例子:
A=1.2345678和B=1.2345678E-05。
所以我想得到A=1.2346和B=1.2346E-05。
我可以A使用cut以下方法快速完成工作:
A=`echo $A | cut -c1-6`
Run Code Online (Sandbox Code Playgroud)
但这给了我A=1.2345我期望最后一位四舍五入的位置6(因为下一位数字大于 5)。它也只适用于小数点前的一位数(如果我想近似100.2345678怎么办?)同样适用B。
我的split.bash_profile 文件中有以下功能。
function split {
name="${$1%.*}"
ext="${$1##*.}"
echo filename=$name extension=$ext
}
Run Code Online (Sandbox Code Playgroud)
现在我应该期望命令split foo.bar会给我
filename=foo extension=bar
Run Code Online (Sandbox Code Playgroud)
但我收到-bash: ${$1%.*}: bad substitution错误消息。然而,这同样适用于 shell 脚本中的常用 shell 变量,$x而不是$1在 .bash_profile 中(我认为在 .bashrc 中也是如此)。
有什么问题,有什么补救办法?