当前位置: 首页 > 知识库问答 >
问题:

在Python中舍入到5(或其他数字)

益智明
2023-03-14

有没有一个内置的函数可以像下面这样圆?

10 -> 10
12 -> 10
13 -> 15
14 -> 15
16 -> 15
18 -> 20

共有1个答案

庞安晏
2023-03-14

我不知道Python中有什么标准函数,但这个函数对我来说很有效:

def myround(x, base=5):
    return int(base * round(float(x)/base))
def myround(x, base=5):
    return base * round(x/base)

很容易看出为什么上面的方法管用。您希望确保您的数字除以5是一个整数,并正确四舍五入。因此,我们首先严格执行这一操作(循环(float(x)/5),其中float仅在Python2中才需要),然后除以5,再乘以5。最后转换为int是因为round()在Python2中返回一个浮点值。

我通过给它一个base参数(默认为5)使函数更通用。

 类似资料:
  • 问题内容: 我正在寻找四舍五入的价值 2.3913-> 2.5 4.6667-> 4.5 2.11-> 2 如何在SQL中进行管理? 谢谢 问题答案: 使您到最近的.5

  • 问题内容: 我需要四舍五入,它应该是两位小数。 尝试了以下内容 28.27 但是期望值仅为28.26。 问题答案: 似乎您需要:

  • 问题内容: 据我所知,当四舍五入为5时,四舍五入应按以下方式进行。 如果我们做所有的总结, 我很确定在.Net中也可以进行这种四舍五入。 但是在SQL Server中,总会四舍五入,这在数学上是不正确的。 这导致四舍五入后的总值相差1美分。 我已经尝试过使用十进制和货币数据类型。 难道我做错了什么?有没有解决的办法? 问题答案: 如果您确实想在SQL Server中使用银行取整…

  • 问题内容: 似乎应该已经被问过数百次了(双关很有趣=),但是我只能找到舍入浮点数的函数。如何围捕一个整数,例如:? 问题答案: 四舍五入通常是对浮点数进行的,这里您应该知道三个基本函数:(四舍五入到最接近的整数),(总是四舍五入)和(总是四舍五入)。 您询问整数并舍入到数百,但是只要您的数字小于2 53,我们仍然可以使用。要使用,我们只需先除以100,向上舍入,然后再乘以100: 先除以100,然

  • 问题内容: 我知道在浮点算法中会发生舍入错误,但是有人可以解释这一原因: 这在x64上的Python 2和Python 3上都发生。 就我所见,这要么是错误,要么是非常愚蠢的规范,因为我看不出最后一个表达式的求值理由。 为什么不简单定义为? 编辑 :也计算为。至少这是必然的,因为然后评估为 编辑 :这不是浮点数学运算符被破坏吗?因为我在问为什么这个特定的运算会受到(可能是可以避免的)舍入错误,为什

  • 问题内容: 我在一个项目中有一些代码,想在另一个项目中重用。我需要做什么(在两个文件夹中)才能执行此操作? 目录结构类似于: oo 项目1 file1.py file2.py 酒吧 项目2 fileX.py fileY.py 我想使用fileX.py和fileY.py中的file1.py和file2.py中的函数。 问题答案: 理想情况下,两个项目都是可安装的python程序包,并充满__init