我正在尝试使用“bc”在Bash脚本中实现以下计算,但“scale”选项产生的结果不正确,最后有2个额外的零,这意味着我必须手动修剪它(丑陋) )。
计算:
((2592000-239)÷2592000)×100
预期结果:99,990779321(但我只想显示2位小数)
在Bash中:
echo "scale=2; ((2592000-239)/2592000)*100" | bc
99.00
echo "scale=3; ((2592000-239)/2592000)*100" | bc
99.900
echo "scale=4; ((2592000-239)/2592000)*100" | bc
99.9900
echo "scale=5; ((2592000-239)/2592000)*100" | bc
99.99000
echo "scale=8; ((2592000-239)/2592000)*100" | bc
echo "scale=8; ((2592000-239)/2592000)*100" | bc
99.99077900
echo "scale=10; ((2592000-239)/2592000)*100" | bc
99.9907793200
根据手册页:
NUMBERS bc中最基本的元素是数字。数字是任意精度数字。此精度均为整数 部分和分数部分。所有数字都有代表 内部以十进制表示,所有计算均以十进制表示。 (此版本截断了除法和乘法运算的结果。) 数字有两个属性,即长度 和规模。长度是数字中有效小数位的总数,小数位数是总数 小数点后的小数位数。例如: .000001的长度为6,比例为6。 1935.000的长度为7,比例为3。
我理解正确吗?
答案 0 :(得分:2)
您可以使用:
echo 'scale=2; 100*(2592000-239)/2592000' | bc -l
99.99
您获得99.00
,因为您首先获得.99
的分数,而当它与100
相乘时,它变为99.00
(由于scale-2
)
答案 1 :(得分:2)
如果您不想检查ThisWorkbook.Sheets(1).Select
ThisWorkbook.Sheets(2).Select (False) ' like holding ctrl
ThisWorkbook.Sheets(3).Select (False)
ThisWorkbook.Sheets(2).Select (False) ' line 2 again; essential sacrifice for the vba-gods.
语句中是否有正确的数学运算顺序,(比例应用于除法),只需使用默认精度计算bc
,输出格式为bc
,如:
bash