我知道关于python取整的问题已经被问过多次了,但是答案并没有帮助我。我正在寻找一种将浮点数四舍五入并返回浮点数的方法。该方法还应该接受一个参数,该参数定义要舍入的小数位。我写了一种实现这种舍入的方法。但是,我认为它看起来一点也不优雅。
def round_half_up(number, dec_places):
s = str(number)
d = decimal.Decimal(s).quantize(
decimal.Decimal('0.' + '0' * dec_places),
rounding=decimal.ROUND_HALF_UP)
return float(d)
我不喜欢它,我必须将float转换为字符串(以避免浮点数不准确),然后使用decimal模块。我认为decimal.Decimal('0.' + '0' * dec_places)
也看起来很丑。您有更好的解决方案吗?