首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Python:如何将一个数字向下舍入到下一个1000

Python:如何将一个数字向下舍入到下一个1000
EN

Stack Overflow用户
提问于 2018-08-23 13:34:36
回答 3查看 690关注 0票数 5

在python中,有一个内置函数round(),

它像这样舍入一个数字:

代码语言:javascript
运行
复制
round(1900, -3) == 2000

是否有一个内置函数可以向下舍入一个数字,如下所示:

代码语言:javascript
运行
复制
function(1900, -3) == 1000
EN

回答 3

Stack Overflow用户

发布于 2018-08-23 15:44:41

您可以使用楼层分割:

代码语言:javascript
运行
复制
def round_down(x, k=3):
    n = 10**k
    return x // n * n

res = round_down(1900)  # 1000

math.floor也可以工作,但性能有所下降,请参阅Python integer division operator vs math.floor

票数 3
EN

Stack Overflow用户

发布于 2018-08-23 13:46:41

也许你可以这样试一下

代码语言:javascript
运行
复制
import math
math.floor(1900 / 100) * 100
票数 2
EN

Stack Overflow用户

发布于 2018-08-23 13:48:10

math.floor([field])向下舍入到下一个整数

math.ceil([field]/1000)*1000向下舍入到下一个1000

也许你可以在那之后做一个整型转换。

如果你喜欢指数参数的语法,你可以定义你自己的函数:

代码语言:javascript
运行
复制
import math

def floorTo10ths(number, exp):
     return int(math.floor(number/10**exp) * 10**exp) 

floorTo10ths(1900, 3)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51978926

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档