`
unsoundboy
  • 浏览: 62518 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

shell比较小数大小

阅读更多
1. awk -v a=0.7 -v b=0.5 'BEGIN{print(a>b)?"a is big":"b is big"}'
2.
#!/bin/bash
#没对输入位置参数检测
#
c=$(($((${#1}>${#2}?${#1}:${#2}))-2))
ac=$(printf "%.${c}f" $1) ac=${ac/.}
bc=$(printf "%.${c}f" $2) bc=${bc/.}
([[ $ac > $bc ]]&&echo \$1 is big)||\
([[ $ac < $bc ]]&&echo \$2 is big)||\
([[ $ac == $bc ]]&&echo \$1 is equl \$2)
3.
expr $a \> $b
返回1表示$a>$b, 0表示$a<$b

4.

适用于bash:

function comp(){
        a=$1
        b=$2

        if [ ${#a} -gt ${#b} ] ; then

                while [ ${#b} -ne ${#a} ]

                do
                        b="0${b}"
                done
        else
                while [ ${#a} -ne ${#b} ]

                do
                        a="0${a}"
                done
        fi

        if [ $a \< $b ] ; then
                echo -1
        elif [ $a \> $b ] ; then
                echo 1
        else
                echo 0
        fi
}


思路:
把数字拆分成整数部分和小数部分,整数部分前面补0对齐,小数部分后面补0对齐。

然后把两个部分作为字符串来比较。

返回结果:
a < b 返回-1
a=b 返回0
a>b 返回1

5.直接作为字符串比较

a=0.7
b=0.5

[ "$a" \> "$b" ] && echo "a>b"


6.bc



a=1.6
b=6.1
c=`echo "$a > $b" | bc`


7.expr $a \> $b
返回1表示$a>$b, 0表示$a<$b
分享到:
评论

相关推荐

    shell经典的面试题目

    3. **对比小数大小** 这个面试题涉及到了shell中的数值比较。`top`命令用于监控系统状态,而这里要求比较两次`top`命令执行后的CPU使用率。通过`awk`提取第3行的第二个字段,然后使用`sed`去除非数字字符,得到纯...

    Shell编程基础

    - 浮点型:用于存储带有小数部分的数值。 - 日期型:用于存储日期或时间数据。 - **变量的分类**: - **用户自定义变量**:由用户自行定义的变量,用于特定的功能或用途。 - **环境变量**:这类变量主要用于...

    Shell常用操作符总结

    - `/`:除法(注意:整数除法可能丢失小数部分) - `%`:取余数 例如: ```bash a=5 b=2 sum=$((a + b)) # sum = 7 difference=$((a - b)) # difference = 3 product=$((a * b)) # product = 10 remainder=$((a % b...

    RankingSort:真正快速的小数组排序算法

    EcoShellSort(我仍在研究这个)是 shellSort 的一种修改实现,它使用数组的大小作为参数来设置间隙(我仍在测试以检查何时以及如何使其更好)。 由于它使用相同的插入排序原理对小块进行排序,因此我正在调整块的...

    Linux c比较金额相等函数.pdf

    在这个场景下,我们关注的是如何编写函数来正确地比较两个金额是否相等或者满足特定的大小关系。下面将详细介绍几种常见的C语言表达式和函数,用于处理这种比较。 1. **条件测试表达式**: 在Linux shell脚本中,...

    Linux c比较金额相等函数.docx

    对于金额的处理,由于涉及到小数,通常会使用浮点数或双精度浮点数(float或double)。在C语言中,可以使用`==`运算符来判断两个浮点数是否相等,但要注意浮点数的精度问题,可能需要使用特定的算法来判断“足够接近...

    用Java语言实现的各种排序.doc

    当子数组大小小于阈值时,转而使用插入排序,这在处理小数组时效率更高。这种方法称为“尾递归优化”和“插入排序的阈值应用”。 7. **归并排序(Merge Sort)**: 归并排序是另一种基于分治的排序算法,将数组分为两...

    數據庫導出道入命令匯總

    ```shell exp 用户名/密码 @数据库别名 [选项] ``` ### 具体参数详解 #### impsystem/foxconn158@NSD2TEST - **FILE**: 指定导出文件的路径和名称。例如:`E:\c_emp.dmp` - **TABLES**: 指定要导出的表名或表列表...

    T-SQL电子书包含PPT及学习笔记、课后作业 非常好的sql学习资料

    stuID numeric(18,0), --身份证号 代表18位数字,小数位数为0 stuSeat smallint identity(1,1), --座位号,自动编号 起始量为1,自增长1 stuAddress text --住址,允许为空,即可选输入 ) go /*学生成绩表*/ if ...

    vbs代码教程[参考].pdf

    * 浮点数(Double):用于存储小数数据,例如:3.14 * 布尔值(Boolean):用于存储 true 或 false 值 * 日期(Date):用于存储日期和时间数据 * 数组(Array):用于存储多个数据的集合 * 对象(Object):用于...

    Linux下科学计数法(e)转化为数字的方法

    在Linux环境中,科学...总的来说,Linux shell提供了灵活的工具来处理科学计数法的转换,无论是简单的转换,还是精确控制小数位数,甚至去除末尾的零。熟练掌握这些方法,对于在命令行环境中进行数值处理非常有帮助。

    java的常用算法 感兴趣的可以下哦

    3. 递归地对左侧和右侧的子数组进行快速排序,直到子数组的大小小于预设的阈值(如CUTOFF),这时可以采用插入排序等更简单的算法来处理小数组。 ### 总结 以上三种排序算法——选择排序、希尔排序和快速排序,...

    mathbash:BASH中的数字和数学

    注意,整数除法可能会丢失小数部分。 接下来是变量的使用。在BASH中,你可以声明并赋值变量来存储数字,如`num1=2`,然后可以使用这个变量进行计算,如`num2=$((num1 + 3))`,这样`num2`的值就会是5。 BASH还支持...

    linux 命令

    - `grep SwapTotal /proc/meminfo`:检查交换分区大小。 - `free`:检查当前可用的内存和交换分区情况。 - `df -h /usr`:检查磁盘空间使用情况。 #### 四、Shell命令 **Shell命令(内置命令)**是Linux系统中最...

    Linux常用命令及使用技巧总结1

    本文档主要总结了一些常用的Linux命令及其使用技巧,这些命令在编写Shell脚本时尤其重要。 首先,`ls`命令用于列出目录内容。通过添加不同选项,可以定制输出信息。例如,`-a`显示所有文件(包括隐藏文件),`-l`以...

    Java基础Ver1.0

    #### 九、整型数据类型的字节大小与表示范围 1. **byte**: 1字节,表示范围`-128`到`127`。 2. **short**: 2字节,表示范围`-32768`到`32767`。 3. **int**: 4字节,表示范围`-2147483648`到`2147483647`。 4. **...

    C语言核心技术(英文).pdf

    - 浮点常量:包括小数形式和指数形式。 - 字符常量与字符串常量的区别及使用场景。 2. **类型转换** - 隐式类型转换:在表达式计算过程中自动发生的转换。 - 显式类型转换:通过强制类型转换实现数据类型的转换...

    2015数据库系统工程师上午真题.doc

    1. **补码表示法**:补码是一种在计算机中表示有符号定点小数的方法,可以表示从-2^(n-1)到2^(n-1)-1共2^n个不同的数值,其中n是机器字长。 2. **CPU访问速度**:计算机中CPU访问速度最快的是Cache(高速缓存),...

    经典算法大全.

    - **概述**:合并排序是一种分治算法,将数组分成若干个小数组,然后再将这些小数组合并起来。 #### 38. 基数排序法 - **概述**:基数排序是一种非比较型整数排序算法,通过分配元素到不同的“桶”来排序。 #### ...

Global site tag (gtag.js) - Google Analytics