python - 如何四舍五入一个值但不以单位步长

标签 python perl bash rounding

我正在尝试使用 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/

相关文章:

Python过滤和保存

perl - 使用 TAP::Harness 处理测试,如何在测试退出时打印输出

regex - 如何从类中排除某些字符?

arrays - BASH - 作为数组名称一部分的变量(第 2 部分)

python - Pandas:按分隔符拆分列并根据其他列重新排列

python - 无法使用列表格式化字符串

python - 按一列对 numpy 数组 block 进行排序的有效方法是什么?

Python 等价于 Perl 的习语 do this or that,通常称为 "or die"?

python - 从 shell 脚本调用 Python 函数

Bash 参数替换和扩展一气呵成