我正在尝试使用 awk 在 bash 中四舍五入几个小数值。例如:如果值为 6.79
awk 'BEGIN {rounded = sprintf("%.0f", 6.79); print rounded }'
这会返回 7。
有没有一种方法可以让我不舍入到最接近的整数(1,2,3,..),而是以 0.5 为步长(0,0.5,1,1.5,2,2.5...)
任何使用 python 或 perl 工作的替代方法也可以。 python中的当前方式
python -c "from math import ceil; print round(6.79)"
也返回 7.0
最佳答案
Perl 解决方案:
perl -e 'print sprintf("%1.0f",2 * shift) / 2' -- 6.79
7
技巧很简单:将数字乘以二,四舍五入,然后除以。
关于python - 如何四舍五入一个值但不以单位步长,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15902675/