python - 如何使用数学模块(Python 3)四舍五入到 32

标签 python math python-3.x rounding

是否可以使用内置数学模块对单词进行四舍五入?我知道你可以使用 math.floor() 向下舍入,但是有没有办法向上舍入?目前,我用它来舍入:

def roundTo32(x, base=32):
    return int(base * round(float(x) / base))

但这并不总是四舍五入。

最佳答案

使用math.ceil()将浮点值向上舍入:

import math

def roundTo32(x, base=32):
    return int(base * math.ceil(float(x) / base))

演示:

>>> import math
>>> def roundTo32(x, base=32):
...     return int(base * math.ceil(float(x) / base))
... 
>>> roundTo32(15)
32
>>> roundTo32(33)
64

关于python - 如何使用数学模块(Python 3)四舍五入到 32,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21101070/

相关文章:

python - 如何用Python分析docx文件中的注释语句?

math - float 学有问题吗?

arrays - 证明所有前缀和都是非负的

haskell - 如何在 Haskell 上实现数学归纳法

python - 理解为什么这个 python 代码随机工作

python - 如何在网络上提供 PDF 文件?

python - 在 Python 中从列表中弹出元素的时间复杂度是多少?

python - Virtualenv 正在安装错误版本的 Python

python - 在带有尾随零的列中写入 pandas 数据帧 to_csv

Python:将两个值的项目(一个必须重叠;另一个不能重叠)分为四个箱子