shell脚本浮点数计算方法
使用bc进行浮点数计算
bc是一个支持任意精度的计算,适用于整数和浮点数的运算。
加法:
#!/bin/bash
num1=3.5
num2=2.1
result=$(echo "$num1 + $num2" | bc)
echo "Result of addition: $result"
减法:
#!/bin/bash
num1=3.5
num2=2.1
result=$(echo "$num1 - $num2" | bc)
echo "Result of subtraction: $result"
乘法:
#!/bin/bash
num1=3.5
num2=2.1
result=$(echo "scale=2; $num1 * $num2" | bc)
echo "Result of multiplication: $result"
注意:scale=2 指定了结果保留两位小数
说明:
在bc中,变量用于设置浮点运算中小数点后的位数,但它仅影响除法运算的默认结果以及后续的运算结果(如果它们依赖先前的运算结果)。对于加法,减法和乘法,bc默认会按照输入的数字的精度来显示结果。为了确保加法,减法和乘法的运算结果也保留两位小数,可以使用一个技巧,将结果除以1,这实际上不会改变数值大小,但是会触发bc根据scale变量进行舍入。
除法:
#!/bin/bash
num1=3.5
num2=2.1
result=$(echo "scale=2; $num1 / $num2" | bc)
echo "Result of division: $result"
awk进行浮点运算
awk也可以用于浮点运算
加法:
#!/bin/bash
num1=3.5
num2=2.1
result=$(awk "BEGIN {print $num1 + $num2}")
echo "Result of addition: $result"
减法:
#!/bin/bash
num1=3.5
num2=2.1
result=$(awk "BEGIN {print $num1 - $num2}")
echo "Result of subtraction: $result"
乘法:
#!/bin/bash
num1=3.5
num2=2.1
result=$(awk "BEGIN {print $num1 * $num2}")
echo "Result of multiplication: $result"
除法:
#!/bin/bash
num1=3.5
num2=2.1
result=$(awk "BEGIN {print $num1 / $num2}")
echo "Result of division: $result"
总结:
- 使用
bc可以进行高精度浮点数的运算,并且可以通过scale变量指定保留的小数位数。 - 使用
awk可以更方便地进行简单的浮点数运算,但可能不如bc灵活。
浙公网安备 33010602011771号