小编hba*_*ega的帖子

用正确的四舍五入逼近一个浮点数

如何使用 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。

shell-script floating-point

3
推荐指数
1
解决办法
330
查看次数

bash 功能:拆分文件的名称和扩展名

我的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 中也是如此)。

有什么问题,有什么补救办法?

bash function

1
推荐指数
1
解决办法
1390
查看次数

标签 统计

bash ×1

floating-point ×1

function ×1

shell-script ×1