如何在浮点上使用 expr?
我知道这是一个非常愚蠢的问题,但我不知道如何在 bash 中执行此操作:
20 / 30 * 100
它应该是 66.67
但 expr 说 0
,因为它不支持漂浮。 Linux 中的什么命令可以代替 expr 并执行此等式?
I know it's really stupid question, but I don't know how to do this in bash:
20 / 30 * 100
It should be 66.67
but expr is saying 0
, because it doesn't support float.
What command in Linux can replace expr and do this equalation?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(7)
bc
会为您完成此操作,但顺序很重要。或者,对于您的具体情况:
无论您选择什么方法,都可以将其作为一项功能包含在内,以使您的生活更轻松:
bc
will do this for you, but the order is important.or, for your specific case:
Whatever method you choose, this is ripe for inclusion as a function to make your life easier:
只需在 awk 中执行即可
将其保存到变量中
just do it in awk
save it to variable
我一般使用perl:
I generally use perl:
正如 bash 手册页中所报道的:
您可以提前乘以 100 以获得更好的部分结果:
66
或者乘以 10 的更高倍数,并想象它所属的小数位:
66666
As reported in the bash man page:
You can multiply by 100 earlier to get a better, partial result:
66
Or by a higher multiple of 10, and imagine the decimal place where it belongs:
66666
这是 paxdiablo 答案的简化。 -l 将小数位数(小数点后的位数)设置为 20。它还加载带有三角函数和其他内容的数学库。
This is a simplification of the answer by paxdiablo. The -l sets the scale (number of digits after the decimal) to 20. It also loads a math library with trig functions and other things.
另一个明显的选择:
假设您使用的是 Python 3。否则,请使用 python3。
Another obvious option:
assuming you are using Python 3. Otherwise, use
python3
.expr 不支持浮点数,
您可以制作一个简单的 C 计算器,只需使用
./mycal 22 / 7.0
expr doesn;t support float,
You can make a simple c calculator and just use,
./mycal 22 / 7.0