8、linux-数字计算

bash内置了对整数四则运算的支持,但是并不支持浮点运算

bc命令是一种支持任意精度的交互执行的计算器语言,而bc命令可以很方便的进行浮点运算,当然整数运算也不再话下

在bc工作环境下,可以使用以下计算符号:
+    加法 
-     减法 
*    乘法 
/     除法 
^    指数 
%   余数

seq 10;seq 1 10;seq 1 1 10

cat << seq 10 >> 123

其中,在做“除法计算”或“余数计算”时,可以使用scale指定小数点之后的位数(默认为0,即整数)

1、bash

例子1:a=2;b=3  echo $(($a+$b))   #结果为5

2、bc  quit

例子2:a=2;b=3  bc <<< 2*3(或者bc <<<  $a*$b)  #结果为6   

例子3:  bc进入交互模式计算:也可以一行输入多个计算,用逗号;相隔

例子4:   也可以不进行交互而直接计算出结果  echo "(6+3)*2" |bc  echo 15/4 |bc   echo "scale=2;15/4" |bc  echo "3+4;5*2;5^2;18/4" |bc  echo $a+$b |bc

例子5:bc后可以接文件名  

  cat calc.txt

  20+89

  56-17

  34*45

  bc calc.txt

  109

  39

  1530

例子6:也可以使用HERE 命令

bc << HERE

> 30+56

> 30-14

> 30*5

HERE

86

16

150

3、awk

awk在处理文件的时,可以进行运算,那当然也可以单用来计算了

awk ‘BEGIN{a=(3+2)*2;print a}‘

awk ‘BEGIN{a=(3+2)*2;b=(5+8)*10/5;print a,b}‘

awk ‘BEGIN{a=(3+2)*2;b=(5+8)*10/5;print 2a,3b}‘

时间: 2024-10-05 14:59:37

8、linux-数字计算的相关文章

Linux Shell 数字计算

直接上脚本, 使用$(())以及$[]进行数字计算 数值比较:n1 -eq n2检查n1是否等于n2         n1 -le n2检查n1是否小于等于n2n1 -ge n2检查n1是否大于等于n2     n1 -lt n2检查n1是否小于n2n1 -gt n2检查n1是否大于n2         n1 -ne n2检查n1是否不等于n2 #!/bin/bash numa=1; numb=2; numc1=$(($numa - $numb)); numc2=$[$numa + $numb]

linux内核计算时间差以及jiffies溢出

jiffies是每个时钟中断,都会加1,这就导致一个问题,无论jiffies(一般来说是unsigned long类型)多少个字节,总有溢出的时候. 更极端的时候,当期jiffies是0xffffffff,下一个时刻就是0x0 这样,当你计算延时/时差 的时候0x0 - 0xffffffff结果是 0xffffffff,实际上只是过了一个时钟周期,这种差别是巨大的. 那么如何防止这种情况发生呢? 很简单 假设t1是之前记录的jiffies,t2是当年的jiffies,你想要计算两者差值: (lo

JS数字计算精度误差的解决方法

本篇文章主要是对javascript避免数字计算精度误差的方法进行了介绍,需要的朋友可以过来参考下,希望对大家有所帮助. 如果我问你 0.1 + 0.2 等于几?你可能会送我一个白眼,0.1 + 0.2 = 0.3 啊,那还用问吗?连幼儿园的小朋友都会回答这么小儿科的问题了.但是你知道吗,同样的问题放在编程语言中,或许就不是想象中那么简单的事儿了. 不信?我们可以做个试验. 先来看一段 JS. var num1 = 0.1; var num2 = 0.2; alert(num1+num2 ===

全面解析Linux数字文件权限

在刚开始接触Linux时对于文件权限的理解并不是很透彻,这里详细介绍一下数字文件权限和字母文件权限的对应关系,以帮助Linux入门初学者尽快的完成对文件权限的理解,尽快学习Linux系统更深层次内容. Linux下,查看某路径下用(ls -l)查看所有文件的详细属性列表时,会看到文件的操作权限,类似“drwxr-xr-x”的字符串. 这串字符可以分成4段理解,结构为“d + 文件所有者操作权限 + 文件所有者所在组操作权限 + 其余人的操作权限”: 1. 第一段:例子中字母“d”,表示文件所在目

javascript避免数字计算精度误差的方法详解

本篇文章主要是对javascript避免数字计算精度误差的方法进行了介绍,需要的朋友可以过来参考下,希望对大家有所帮助 如果我问你 0.1 + 0.2 等于几?你可能会送我一个白眼,0.1 + 0.2 = 0.3 啊,那还用问吗?连幼儿园的小朋友都会回答这么小儿科的问题了.但是你知道吗,同样的问题放在编程语言中,或许就不是想象中那么简单的事儿了.不信?我们先来看一段 JS. var numA = 0.1; var numB = 0.2; alert( (numA + numB) === 0.3

JS数字计算精度问题解决

1 add(a, b) {//相加 2 var c, d, e; 3 try { 4 c = a.toString().split(".")[1].length; 5 } catch (f) { 6 c = 0; 7 } 8 try { 9 d = b.toString().split(".")[1].length; 10 } catch (f) { 11 d = 0; 12 } 13 return e = Math.pow(10, Math.max(c, d)),

java 大数字计算

|--代码示例 1 /** 2 * @auther::9527 3 * @Description: 算法学习 4 * @program: oop 5 * @create: 2019-09-12 23:48 6 */ 7 public class Test { 8 public static void main(String[] args) { 9 //乘数 10 int multiplier = 358623965; 11 //被乘数 12 int multiplicand = 20020367

Linux命令应用大词典-第9章 数字计算

9.1 bc:任意精度的计算器 9.2 dc:一个任意精度的计算器 9.3 expr:将表达式的值打印到标准输出 9.1 bc:任意精度的计算器 9.2 dc:一个任意精度的计算器 9.3 expr:将表达式的值打印到标准输出 原文地址:https://www.cnblogs.com/tqtl911/p/8660689.html

使用awk进行数字计算,保留指定位小数

对于在Shell中进行数字的计算,其实方法有很多,但是常用的方法都有其弱点: 1.bc bc应该是最常用的Linux中计算器了,简单方便,支持浮点. [[email protected] ~]$ echo 1+2 |bc 3 [[email protected] ~]$ echo 5.5*3.3 |bc 18.1 [[email protected] ~]$ echo 5/3 |bc 1 [[email protected] ~]$ echo "scale=2;5/3" |bc 1.6

[转载]使用awk进行数字计算,保留指定位小数

对于在Shell中进行数字的计算,其实方法有很多,但是常用的方法都有其弱点: 1.bc bc应该是最常用的Linux中计算器了,简单方便,支持浮点. [[email protected] ~]$ echo 1+2 |bc 3 [[email protected] ~]$ echo 5.5*3.3 |bc 18.1 [[email protected] ~]$ echo 5/3 |bc 1 [[email protected] ~]$ echo "scale=2;5/3" |bc 1.6