linux专家在线回答问题
1个回答
关注
展开全部
shell 脚本支持浮点数运算,可以使用 `bc` 命令来实现。具体的操作方式如下:```shif [ $(echo "$var1 > $var2" | bc) -eq 1 ]then echo "$var1 is greater than $var2"else echo "$var1 is less than or equal to $var2"fi```其中, `bc` 命令可以实现浮点数运算, `-eq 1` 表示判断前面的条件是否成立,如果成立则返回 1,否则返回 0。 `$var1` 和 `$var2` 表示需要比较的两个数值,可以先用 `echo` 命令将要比较的表达式输出,然后通过 `bc` 命令计算出表达式的值,最后通过 `$(...)` 将计算结果作为条件传递给 `if`。如果需要保留小数点后两位,需要在 `bc` 命令中加上 `scale=2`,即:```shresult=$(echo "scale=2;$var1 + $var2" | bc)```这样可以将计算结果保留小数点后两位,并且将结果赋值给变量 `result`。注:也可以使用第三方工具 awk 实现,如:```shresult=$(echo "$var1 $var2" | awk '{ printf "%.2f", $1 + $2 }')```其中 `printf` 指定了格式化输出, `%.2f` 指定了结果保留小数点后两位的格式。
咨询记录 · 回答于2023-05-21
linux专家在线回答问题
请问你遇到的具体问题是什么呢?
这道题用if多分之怎么精确到小数。
我这边看得到的图片比较模糊,看不清晰,你可以,用文字打出来吗?
shell程序编写if多分支,怎么精确到小数
shell 脚本支持浮点数运算,可以使用 `bc` 命令来实现。具体的操作方式如下:```shif [ $(echo "$var1 > $var2" | bc) -eq 1 ]then echo "$var1 is greater than $var2"else echo "$var1 is less than or equal to $var2"fi```其中, `bc` 命令可以实现浮点数运算, `-eq 1` 表示判断前面的条件是否成立,如果成立则返回 1,否则返回 0。 `$var1` 和 `$var2` 表示需要比较的两个数值,可以先用 `echo` 命令将要比较的表达式输出,然后通过 `bc` 命令计算出表达式的值,最后通过 `$(...)` 将计算结果作为条件传递给 `if`。如果需要保留小数点后两位,需要在 `bc` 命令中加上 `scale=2`,即:```shresult=$(echo "scale=2;$var1 + $var2" | bc)```这样可以将计算结果保留小数点后两位,并且将结果赋值给变量 `result`。注:也可以使用第三方工具 awk 实现,如:```shresult=$(echo "$var1 $var2" | awk '{ printf "%.2f", $1 + $2 }')```其中 `printf` 指定了格式化输出, `%.2f` 指定了结果保留小数点后两位的格式。
以上是一个解决的demo解析,你可以参考下。