Shell Unix数学增加了2 0';他落后于我的数学。

Shell Unix数学增加了2 0';他落后于我的数学。,shell,unix,math,Shell,Unix,Math,我有一行代码,当我把它打印到我的电子邮件中时,它会在我的数学后面产生额外的00。我想知道我做错了什么 Percentage() { echo "scale = 2 ;($(Value)/5)*100" | bc -l | awk '{print $0"%"}' } 除产生29.34%的结果外,产生29.00%。当我添加更多比例时,它只会变成29.3400%,而不是29.3423%。先谢谢你 假设值为:1.467115 比例也应用于任何(后续)计算。因此,来自1.467115/5的scale=2

我有一行代码,当我把它打印到我的电子邮件中时,它会在我的数学后面产生额外的00。我想知道我做错了什么

Percentage()
{
echo "scale = 2 ;($(Value)/5)*100" | bc -l | awk '{print $0"%"}'
}

除产生29.34%的结果外,产生29.00%。当我添加更多比例时,它只会变成29.3400%,而不是29.3423%。先谢谢你

假设值为:
1.467115

比例
也应用于任何(后续)计算。因此,来自
1.467115/5
scale=2
创建:
0.29
*100
29.00

将方程式更改为:

Value() {
    echo "1.467115"
}
Percentage() {
    echo "scale=${1:-2};$(Value)*100/5" | bc -l | awk '{print $0"%"}'
}

Percentage
并生产:

29.34%
29.3423%
百分比4
产生:

29.34%
29.3423%

Ps:为什么不使用awk进行计算?

什么是
?您正在尝试用它替换命令。你的意思是一个变量替换吗(即,
${Value}
而不是
$(Value)
)?我想利用这个错误来打印我的工资支票…你的输入是什么,给你
29.00
而不是
29.34
?这看起来像是一种复杂的书写方式
awk“BEGIN{printf\”%.2f%\n\”,$(Value)/5*100}“
,我不认为这是优化的。我假设
Value
是一个生成单个数字输出的命令。@JonathanLeffler或只是
$(Value)*20
:-)