迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 操作系统 >

Bash 中的浮点运算

作者:迹忆客 最近更新:2023/05/18 浏览次数:

这篇简短的文章描述了如何在 GNU BASH(Shell 脚本)中直接在命令提示符下或在 shell 脚本中快速执行浮点计算。

如果您使用数字,在命令提示符 (shell) 或 shell 脚本中执行快速浮点计算可能会有所帮助。 本文介绍了以下四种在 Bash 中进行浮点运算的方法:

  1. 使用 bc 命令的任意精度计算器方法。
  2. 使用awk模式扫描和处理方法。
  3. 使用 perl 命令方法。
  4. 使用python命令方法。

Bash 中的整数运算

可以在 Bash 脚本中使用命令行上的 expr 命令或方括号来计算表达式 $[1+1] 来轻松执行仅整数运算。 这显示在下面的代码中:

#!/bin/bash
echo $[2 + 1]

这将生成以下输出:

expr 和整数算术输出

但这些只是整数计算。 如果在这些计算中答案是浮点数,那么它只显示它的整数部分。

要执行浮点运算,我们需要下面讨论的工具的帮助。


Bash 中的浮点运算

可以使用多种工具在 Bash 中执行浮点算术运算。 但是,本文将探讨四种使用最广泛且最容易获得(在所有 UNIX 或 Linux 操作系统系列中)的工具。


在 Bash 中使用基本计算器 (bc) 进行浮点运算

对于命令行计算器,请使用 bc 命令。 它相当于一个简单的计算器,我们可以用它来进行简单的数学计算。

任何编程语言中最基本的运算都是算术运算。 bc 和 expr 命令在 Linux 或 Unix 操作系统中可用,用于执行数学运算。

这些命令可以计算 shell 脚本或 Bash 中的算术表达式。

以下脚本将计算浮点数的加法和除法并显示屏幕结果。

#!/bin/bash
echo "Addition: "
echo '1.5 + 2.5' | bc -l
echo "Division"
echo '2.1/3.2' | bc -l

这将给出以下输出:

bc output


在 Bash 中使用 awk 命令进行浮点运算

实数或浮点数包含小数部分。 在 awk 中,所有数值均由双精度浮点数表示。

换句话说,awk中的所有数字都是浮点数,也就是说所有的计算都使用这些数字。

awk 命令的好处是它在所有类 UNIX 操作系统或 Linux 发行版中都可用,因为它相当古老并且已经使用了很长时间。

以下脚本使用 awk 计算两个浮点数的乘法和除法。

#!/bin/bash
echo "Multiplication: "
echo - | awk '{print 2.1 * 3.2}'
echo "Division"
echo - | awk '{print 2.1 / 3.2}'

这将给出以下输出:

awk output


在 Bash 中使用 perl 命令进行浮点运算

Perl 是一种编程语言,通常包含在所有 Linux 发行版或其他类 UNIX 操作系统的软件包中。 perl 命令可以在 Bash 中使用,它有助于在 Linux 中执行浮点算术运算。

它可以执行所有操作,如加法、减法、乘法、除法和赋值运算符。

以下脚本在 Linux 中使用 perl 命令计算两个浮点数的减法和除法:

#!/bin/bash
echo "Subtraction: "
perl -e 'print 4.1 - 6.2'
echo "Division"
perl -e 'print 4.1 / 2.2'

这将给出以下输出:

perl output


在 Bash 中使用 python 命令进行浮点运算

就像 Perl 一样,Python 是另一种广泛用于所有编程领域的语言。 这是一种经常使用的语言,有时会预装在您的 Linux 发行版中。

python 命令有助于在 Bash 脚本中执行浮点算术运算。 它可以执行所有操作,如加法、减法、乘法、除法和赋值运算符。

以下脚本将使用 python 命令计算两个浮点数的加法和除法:

#!/bin/bash
echo "Addition: "
python -c 'print 4.1 + 6.2'
echo "Division"
python -c 'print 4.1 / 2.2'

这将给出以下输出:

python output


总结

在 Unix 或 GNU Bourne Again Shell (Bash) 下,至少有四种方法可以在命令行或脚本中执行浮点运算。 这些是 awk、perl、python 和 bc 命令。

Unix 系统可能预装了 AWK、BC 和 Perl。 虽然 Python 仍然不如 PERL 流行,但它现在已经相当普遍了。

与通常默认为 32 位或 64 位精度浮点的其他计算器不同,BC 具有作为任意精度计算器的独特优势。

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便