加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

在Python中将数字舍入到50,000

发布时间:2020-12-20 12:12:25 所属栏目:Python 来源:网络整理
导读:如何将数字四舍五入到最接近的上下5万? 我想将此542756舍入到此550000,或将此521405舍入到此500000.考虑到要舍入的数字是变量x. 我试过这个: import mathdef roundup(x): return int(math.ceil(x / 50000.0)) * 50000 但它只是四舍五入,我需要向上或向下四
如何将数字四舍五入到最接近的上下5万?

我想将此542756舍入到此550000,或将此521405舍入到此500000.考虑到要舍入的数字是变量x.

我试过这个:

import math

def roundup(x):
    return int(math.ceil(x / 50000.0)) * 50000

但它只是四舍五入,我需要向上或向下四舍五入.

我也试过这个:

round(float(x),-5)

但这轮到最近的十万.

我想有一个简单的解决方案但找不到任何东西.

解决方法

您可以使用:

def round_nearest(x,num=50000):
    return int(round(float(x)/num)*num)

如果处理大数字,也可以避免转换为浮点数.在这种情况下,您可以使用:

def round_nearest_large(x,num=50000):
    return ((x+num//2)//num)*num

您可以使用两个参数调用它来舍入到最近的num,或者不会舍入到最接近的50000.如果您不希望结果是int(..)本身,可以省略int(..)(例如,如果你想要在0.5上舍入).在这种情况下,我们可以定义:

def round_nearest_float(x,num=50000):
    return round(float(x)/num)*num

这会产生:

>>> round_nearest(542756)
550000
>>> round_nearest(521405)
500000

或者,如果您想要另一个数字舍入到:

>>> round_nearest(542756,1000)
543000
>>> round_nearest(542756,200000)
600000

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读