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 灵活。

posted on 2025-01-02 10:37  杨小杨~  阅读(146)  评论(0)    收藏  举报

导航