日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

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

發布時間:2025/3/15 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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比较小数大小,带有小数点的数值对比大小的全部內容,希望文章能夠幫你解決所遇到的問題。

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