【发布时间】:2017-08-14 19:59:18
【问题描述】:
我正在尝试使用“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
根据手册页:
数字 bc中最基本的元素是数字。数字是任意精度的数字。这个精度都是整数 部分和小数部分。所有数字都表示 内部为十进制,所有计算均以十进制完成。 (此版本截断除法和乘法运算的结果。) 数字有两个属性,长度 和规模。长度是数字中有效小数位数的总数,比例是数字的总数 小数点后的小数位数。例如: .000001 的长度为 6,比例为 6。 1935.000 的长度为 7,比例为 3。
我理解正确吗?
【问题讨论】:
标签: bash math decimal-point bc