如何在 Python 中对数字进行四舍五入2024 年 08 月 29 日 | 阅读 9 分钟 现在是大数据时代,每天都有新公司试图利用其信息做出更好的选择。许多企业正在使用 Python 强大的数据科学环境来分析其数据,这表明 Python 在数据分析领域日益突出。 每个数据科学家都应该了解数据集可能被扭曲的方式。基于有偏差的数据得出的结论可能会导致代价高昂的错误。 偏差可以通过多种方式进入数据集。如果我们正式学习过统计学,我们肯定会知道报告偏差、样本偏差和选择偏差等术语。在处理定量数据时,另一个需要考虑的关键偏差是舍入偏差。 内置的 round() 函数Python 中的 round() 方法接受两个数值输入 n 和 ndigits,它返回给定 n 四舍五入到 ndigits 的数字。由于 ndigits 选项默认设置为零,省略它会得到一个四舍五入到最接近整数的值。正如您将看到的,round() 并不总是按预期运行。 假设我们希望将一个数字四舍五入到最接近的 4.5。该数字将四舍五入到最接近的整数 5。而数字 4.74 将被缩减为一位小数,得到 4.7。 当处理具有多个小数位的浮点数时,快速轻松地四舍五入数字至关重要。Python 函数 round() 使事情变得简单明了。 语法 参数
代码 输出 17 24 7.46584 7.4779 7.47377 在某些情况下,round() 函数的行为不如预期。 代码 输出 2 2 2 round() 算法将 1.5 四舍五入到 2,将 2.5 四舍五入到 2。这不是错误;这是 round() 算法的工作方式。 截断小数截断是通过将数字缩减到特定小数位数来四舍五入的最简单方法之一。在此算法中,特定位置之后的每个数字都替换为 0。truncate() 函数适用于正值和负值。 我们可以使用以下方法创建截断函数
代码 输出 56.0 -7.3 8.52 530.0 -50000.0 trunc() 方法,通常称为截断函数,是一个 Python Math 函数,它从表达式中删除小数位并返回整数结果。因为此函数是 Python math 包的一部分,所以我们必须导入 math 才能使用它。 语法 此操作只有一个参数。在这种情况下,数字可以是正数也可以是负数。 代码 输出 Truncated number is: 45 向上取整另一种方法是“向上取整”,它涉及将值四舍五入到特定位数。例如
在数学中,术语“上限”通常用于描述大于或等于某个数字的最接近的整数。在本教程中,我们将使用 2 个函数来“向上取整”,即 ceil() 函数和 math() 运算。 在两个连续整数之间存在一个非整数值。考虑值 6.2,它将介于 6 和 7 之间。上限是区间的上端点,而下限是其下端点。因此,6.2 的上限是 7,而 6.2 的下限是 6。 Python 的 math.ceil() 方法用于应用上限方法。它通常返回大于或等于给定数字的最接近的整数。 代码 输出 Ceiling for 6.2: 7 Ceiling for 6: 6 Ceiling for -0.8: 0 让我们关注使用 round_up() 函数执行“向上取整”方法的代码 我们可以使用以下方法创建向上取整函数
代码 输出 6.0 5.8 5.25 50.0 800.0 向上取整通常将值沿数轴向右移动,而向下取整通常将值向左移动。 向下取整我们有一种称为向下取整的方法,它类似于向上取整。
在 Python 中,我们可以使用与截断或向上取整相同的机制向下取整。我们必须首先移动小数点,然后对整数进行四舍五入。最后,返回小数点。 一旦小数点移动,就可以使用 math.ceil() 来向上取整。要“向下取整”,我们必须在小数点移动后先对结果数字的下限进行四舍五入。 math.floor() 提供小于或等于特定数字的最小整数。 代码 输出 Floor value for 6.2: 6 Floor value for 6: 6 Floor value for -0.8: -1 我们可以使用以下方法来实现向下取整函数
代码 输出 4.0 3.7 -6.0 舍入偏差有三种舍入技术:truncate()、round_down() 和 round_up()。当谈到保持特定数字可接受的精度水平时,所有这 3 种策略都非常基本。 truncate()、round_down() 和 round_up() 之间有一个关键区别,这显示了舍入的一个关键组成部分:关于零对称。 请记住,round_up() 在零附近是非对称的。在数学中,如果对于任何 n 值,函数 f(n) 均关于零对称,则 f(n) + f(-n) = 0。例如,向上取整(5.5) 返回 6,而向上取整(-5.5) 返回 -5。round_down() 和 round_up() 函数均不对称于 0。 相反,truncate() 方法在零附近是对称的。这是因为 truncate() 在将小数位置向右移动后会删除剩余的数字。当原始数字为正时,这相当于将值向下推。负数则向上取整。因此,truncate(5.5) 得到 5,而 truncate(-5.5) 得到 -5。 舍入偏差的概念由对称性原理引入,该原理概述了舍入如何影响数据集中的数值。 由于数字在正无穷方向上不断向上取整,“向上取整”方法对正无穷表现出偏差。同样,“向下取整”技术对负无穷具有偏差。 对于正数,“截断”技术对负无穷具有偏差,而对于负数,它对正无穷具有偏差。通常,具有这种趋势的舍入算法被认为具有趋向于零的偏差。 让我们看看它在实践中是如何工作的。以下面的浮点数列表为例 让我们使用 statistics.mean() 函数计算 numeric_values 的平均值。 代码 输出 original mean: 0.93875 现在,使用列表推导式执行 truncate()、round_down() 和 round_up(),将 numeric_values 列表中的每个数字四舍五入到一个小数位,并计算修订后的平均值 代码 输出 [3.6, -5.3, 1.0, -2.6, 8.3, -9.4, 6.4, 5.9] Rounded up mean: 0.9875000000000002 Rounded dwn mean: 0.8874999999999998 Truncated mean: 0.9249999999999998 当 numeric_values 中的值向上取整时,修订后的平均值分别为 0.98、0.88 和 0.924。向下取整将平均值降低到大约 0.887。截断数字的平均值约为 0.924,最接近原始平均值。 这并不是说我们必须在舍入不同值时截断,同时保持平均值尽可能接近。结果是正数和负数的比例接近 1。在一组所有正数上,truncate() 方法将类似于 round_up(),而在所有负数上,它将类似于 round_down()。 此实例演示了舍入偏差对从舍入数据生成的数字的影响。在从舍入数据进行推断时,我们需要考虑这些结果。 在舍入时,我们通常希望舍入到具有特定精度的最接近的数字,而不是仅仅向上或向下舍入。 如果我们被要求将数字 2.63 和 2.68 四舍五入到最接近的小数位,我们很可能会回答 2.6 和 2.7。truncate()、round_down() 和 round_up() 方法都没有做类似的事情。 注意事项收集数据完成后再进行舍入如果我们要处理大量信息,存储可能会成为一个挑战。例如,在工业炉中,温度监测器将用于每二十秒记录温度到八位小数。这些值将有助于避免可能导致任何热源或元件故障的过度振荡。使用 Python 脚本,我们可以检查测量值并查找大的波动。 由于每天都会进行测量,因此会有大量测量值。保留 3 位小数的精度是一个选项。但是,消除太多特异性可能会导致计算发生变化。如果空间足够,我们可以轻松地以完整的精度存储所有数据。当容量有限时,最好始终保留至少 2 或 3 位小数的精度。 最后,一旦我们计算出每日平均温度,将值四舍五入到可能的最高精度。 误差减少在对大型数据集中的数字进行四舍五入以进行复杂计算时,最重要的事情是记住错误不会增加。 |
Python 与 JavaScript Python 和 JavaScript 都是功能极其强大的编程语言,具有广泛的实际应用。Python 是一种可用于 Web 开发和各种其他用途(如科学研究)的编程语言。JavaScript 主要用于前端和后端 Web...
阅读 6 分钟
你是否做过打字测试来衡量你的准确性和速度?通过定期练习,你可以测试自己并提高打字水平。构建自己的打字测试会很有趣,不是吗?在这个项目中,我们将创建一个Python打字测试项目。让我们开始吧!打字...
14 分钟阅读
在本教程中,我们将探讨如何使用 PyQt5 开发用户表单。用户表单本质上是一个对话框,它在输入用户数据时为用户提供了额外的控制和易用性。有时有必要创建用户表单,而...
5 分钟阅读
任何使用 Python 编程语言的开发人员都应该优先编写简短、高效、清晰且可读的代码行。为了使事情更容易,Python 提供了三元运算符,它提供了一种更短、更方便的编写条件...
阅读 6 分钟
在 Python 中,将多个列表合并为一个列表是常见的操作。Python 提供了多种方法来完成此任务。在本教程中,我们将了解如何在 Python 中将多个列表合并为一个列表。在 Python 中将多个列表合并为一个列表 以下...
阅读 4 分钟
在本教程中,我们将学习一些操作字符串的酷操作。我们将看到如何以 Python 风格操作字符串。字符串是每个 Python 程序员都使用的基本且必不可少的数据结构。在 Python 中,字符串是一个序列...
5 分钟阅读
在本Python教程中,我们将探讨如何解决错误、Python中的“syntaxerror return outside function”以及“can't assign to function call”。在Python中使用函数时,会发生函数外返回的错误。在编程方面,函数是非常...
阅读 6 分钟
在本教程中,我们将编写 Python 程序来查找给定两个字符串中不常见的字符。不常见的字符是指在一个字符串中存在或在另一个字符串中存在但不在两个字符串中都存在的字符。给定的字符串是小写字符,并且...
阅读 6 分钟
引言 时间序列数据无处不在,从股票价格和天气预报到心率监测和传感器数据。分析和提取有意义的时间序列数据见解可能是一项艰巨的任务,尤其是在处理大型复杂数据集时。一种简化和...
阅读 6 分钟
? 集合和列表是 Python 中的数据结构,由数据元素组组成。但是,这两种数据结构也存在一些显著差异。具体来说,列表执行少量数学运算,这些运算对于搜索特定元素很有用 -...
阅读 4 分钟
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India