shell 中对小数进行比较的方法总结
来源:互联网 发布:淘宝婴儿用品代理 编辑:程序博客网 时间:2024/06/06 03:40
写个调度器需要对小数之间进行大小比较,经查询shell中 可以用 bc 对小数进行运算
example:
#echo 5.5+1.1 | bc
6.6
具体情况#man bc
然而对小数进行比较的相关方法有几个:
1. 自己的解决方法,判断小数点后最多有几位数(N),然后对将要比较的两个数值进行 乘与10的N次方
也就是将小数点去掉来进行比较(小数点后位数多的直接去掉小数点,少的用0补齐)
example:
6.6 x 10 >5.5x10 66>55
6.6666 x 10000 > 5.5 x10000 66666>55000
提示:使用 num=6.6666;echo $num | awk 'BEGIN{FS="."}{print length($2)}'判断小数点后的位数
当然,如果你确定小数点后最多肯定不会超过4位你可直接去掉10000,类推。。
2. 直接用awk
awk -v num1=6.6 -v num2=5.5 'BEGIN{print(num1>num2)?"0":"1"}'
如果num1>num2打印输出0,否则输出1
3.expr
比较妙的方法 expr $a \> $b
返回1表示$a>$b, 0表示$a<$b
# a=6.6 b=5.5;expr $a \> $b
1
4. br
用br其实也是可以实现
echo "6.6>5.5" |br
1
echo "5.5>6.6" | br
0
example:
#echo 5.5+1.1 | bc
6.6
具体情况#man bc
然而对小数进行比较的相关方法有几个:
1. 自己的解决方法,判断小数点后最多有几位数(N),然后对将要比较的两个数值进行 乘与10的N次方
也就是将小数点去掉来进行比较(小数点后位数多的直接去掉小数点,少的用0补齐)
example:
6.6 x 10 >5.5x10 66>55
6.6666 x 10000 > 5.5 x10000 66666>55000
提示:使用 num=6.6666;echo $num | awk 'BEGIN{FS="."}{print length($2)}'判断小数点后的位数
当然,如果你确定小数点后最多肯定不会超过4位你可直接去掉10000,类推。。
2. 直接用awk
awk -v num1=6.6 -v num2=5.5 'BEGIN{print(num1>num2)?"0":"1"}'
如果num1>num2打印输出0,否则输出1
3.expr
比较妙的方法 expr $a \> $b
返回1表示$a>$b, 0表示$a<$b
# a=6.6 b=5.5;expr $a \> $b
1
4. br
用br其实也是可以实现
echo "6.6>5.5" |br
1
echo "5.5>6.6" | br
0
0 0
- shell中对小数进行比较的方法总结
- shell 中对小数进行比较的方法总结
- 脚本乐园 shell 中对小数进行比较的方法总结
- jquery中对小数进行取整的方法
- jquery中对小数进行取整、四舍五入的方法
- Java中对小数进行精确的运算
- 对堆栈中分析的比较好的文章进行的总结
- shell 小数比较大小
- shell 小数比较案例
- 在shell中利用 bc 实现小数或者整数的比较操作
- 在shell中利用 bc 实现小数或者整数的比较操作
- java中保留小数位数的方法总结
- Java:对double值进行四舍五入,保留两位小数的几种方法
- Java:对double值进行四舍五入,保留两位小数的几种方法
- Java:对double值进行四舍五入,保留两位小数的几种方法
- Java:对double值进行四舍五入,保留两位小数的几种方法
- Java:对double值进行四舍五入,保留两位小数的几种方法
- linux shell对行数进行统计的方法
- iOS-崩溃日志收集(Bugly&BugHD)
- 加载中...
- 【网络安全】分分钟理解什么是数字签名
- Google的GSON处理JSON解析
- SQL学习整理(一)
- shell 中对小数进行比较的方法总结
- 为什么List的构造方法是ArrayList(),而不是同名的List()?
- 函数栈帧图解
- 图像处理的常用手段
- 1. 1 布局管理器
- 如何添加一个新的LCD驱动
- PHP数据库操作代码以及注意要点
- 选择排序select
- 数据库启动关闭