日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux比较小数大小,带有小数点的数值对比大小

發布時間:2025/3/15 linux 14 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux比较小数大小,带有小数点的数值对比大小 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

a=1.2

b=1.1

如果直接用

if [ $a -gt $b ];then

echo "$a > $b"

fi

或者

if [ $a > $b ];then

echo "$a > $b"

fi

都會提示語法錯誤

[: 1.2: integer expression expected

沒辦法直接對帶有小數點的數進行對比

轉載本站文章請注明出處:haibing.org

shell的 test 對于數值的判斷都是基于整數的,沒辦法對帶有小數的數值直接進行對比。

我們可以通過其它變通的方法來進行對比:

1、[[ ? ]]

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

2、expr方法

比較妙的方法 expr $a \> $b

根據上面返回值來進行判斷,等于0表示$a < $b,或者$a > $b

轉載本站文章請注明出處:haibing.org

a=1.2

b=1.1

if [ `expr $a \> $b` -eq 0 ];then

echo "$a < $b"

else

echo "$a > $b"

fi

注意:上面兩種方法如果位數不一致,就沒辦法正常對比。

轉載本站文章請注明出處:haibing.org

3、bc計算(推薦使用)

a=1.0

b=1.1

if [ $(echo "$a > $b"|bc) -eq 0 ];then

echo "$a < $b"

else

echo "$a > $b"

fi

大于返回1,小于返回0

位數不一樣的有小數的數字,判斷是否相等:

a=1.0

b=1.0000

if [ $(echo "$a == $b"|bc) -eq 0 ];then

echo "$a != $b"

else

echo "$a = $b"

fi

還是這種方法比較好,推薦使用

4、awk

awk -v num1=6.6 -v num2=5.5 'BEGIN{print(num1>num2)?"0":"1"}'

如果num1>num2打印輸出0,否則輸出1

總結

以上是生活随笔為你收集整理的linux比较小数大小,带有小数点的数值对比大小的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。