Shell Unix数学增加了2 0';他落后于我的数学。
我有一行代码,当我把它打印到我的电子邮件中时,它会在我的数学后面产生额外的00。我想知道我做错了什么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
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
:-)