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

Python 3.x舍入行为

何灿
2023-03-14

和Round的文档:

对于支持round()的内置类型,值被舍入到10的最接近倍数的幂减N;如果两个倍数相等接近,则向偶数选择四舍五入

因此,在V2.7.3下:

In [85]: round(2.5)
Out[85]: 3.0

In [86]: round(3.5)
Out[86]: 4.0
In [32]: round(2.5)
Out[32]: 2

In [33]: round(3.5)
Out[33]: 4
    null

共有1个答案

南门宇
2023-03-14

Python 3的方法(称为“四舍五入”或“银行家的四舍五入”)被认为是目前标准的四舍五入方法,尽管一些语言实现还没有在总线上。

简单的“总是向上取整0.5”技术会导致稍微偏向较高的数字。对于大量的计算,这可能是非常重要的。Python 3.0方法消除了这个问题。

常用的四舍五入方法不止一种。国际浮点数学标准IEEE754定义了五种不同的舍入方法(Python 3.0使用的方法是默认的)。还有其他人。

 类似资料:
  • 问题内容: 我只是在重新阅读Python 3.0的新增功能,它指出: 函数的舍入策略和返回类型已更改。现在,精确的中途案例将舍入到最接近的偶数结果,而不是从零舍入。(例如,round(2.5)现在返回2而不是3。) 以及关于round的文档: 对于支持的内置类型,将值四舍五入为乘幂n的最接近10的倍数;如果两个倍数相等接近,则四舍五入取整为偶数选择 因此,在v2.7.3下: 如我所料 但是,现在在

  • 问题内容: 有没有办法将python浮点数舍入为x小数?例如: 我已经找到了修剪/截断它们的方法(66.666666666-> 66.6666),但是不是圆形的(66.666666666-> 66.6667)。 问题答案: 使用内置功能: 帮助: round(number [,ndigits])->浮点数 将数字四舍五入到给定的精度(以十进制数字表示)(默认为0位数)。这总是返回一个浮点数。精度可

  • 我是不是误会了什么?我假设四舍五入到小数点后的任何一位都是一样的。

  • 问题内容: 对于我的应用程序,我需要设置一些小部件参数,例如alignment()和其他。但是我无法导入它们(其他PyQt5素材导入没有任何问题)。 使用此代码 我收到以下错误: 并使用此作品: 尽管我有一个可行的解决方案,但我只想导入而不能。另外,为什么不一起工作? 问题答案: 我认为这里的困惑在于PyQt有一个称为的特殊虚拟模块,该模块将 所有内容 导入单个名称空间。这是一个非常有用的功能,但

  • 问题内容: 这是小代码来说明我所看到的 打印: 我要打印 我需要做什么? 问题答案: 在使用之前添加以下行: 查看其他舍入模式,看看哪种最适合您。 注意:此方法仅在JDK 1.6或更高版本中有效

  • 使用圆化模式时。java的半偶数(默认值)。文本DecimalFormat,我在返回值中看到异常。 我意识到存在精度错误,请参见:Java BigDecimal setScale和舍入为半偶数 然而,由于这是,我希望它会被处理 定义: 这是检查双倍舍入的示例: 使用java对第4个值进行四舍五入。文本十进制格式,第一个值为原始值 上面列出的每种情况下,最近邻是1,5是等距的,对吗?所以所有这些情况