在 Python 中四舍五入一个数字

Syed Moiz Haider 2023年1月30日 2021年4月29日
  1. 在 Python 2.x 中使用 math.ceil() 函数四舍五入一个数字
  2. 在 Python 中使用简单的算术方法将一个数字四舍五入
  3. 在 Python 中使用取整除法运算符来舍入一个数字
  4. 在 Python 中使用 numpy.ceil() 方法四舍五入一个数字
在 Python 中四舍五入一个数字

本教程介绍了各种方法来解释对数字进行舍入的概念。有多种方法可以以正确的方式四舍五入一个数字。例如,可以使用 Python 提供的 math 模块,NumPy 模块来四舍五入一个数字。本教程将使用示例代码片段介绍这些不同的方法。

在 Python 2.x 中使用 math.ceil() 函数四舍五入一个数字

如果你使用的是 Python 2.x 版本,则可以使用 math.ceil() 函数正确舍入一个数字。ceil() 函数由 Python 的 math 库提供。因此,我们需要首先导入 math 库。ceil 函数采用需要四舍五入的数字。它可以使用一个表达式,然后根据结果四舍五入所得的数字。

但是,应注意,在 Python 2.x 中,int/int 会产生 int,而 int/float 会产生 float。因此,我们需要将 float 中的值之一赋予 ceil 函数以获得准确的结果。如果 ceil 函数中一个表达式的两个值都是整数,则可能会产生错误的结果。

下面的示例代码,说明在 Python 2.x 中如何使用 math.ceil() 对一个数字进行舍入的概念。

import math
print(math.ceil(27/4))
print(math.ceil(27.0/4))

输出:

6
7

在 Python 中使用简单的算术方法将一个数字四舍五入

也可以使用 Python 中的简单算术对数字进行四舍五入。此方法适用于所有版本的 Python。它将第一个表达式转换为 integer 数据类型,并根据另一个表达式的结果添加 0 或 1 值。其他表达式查找具有相同分母的数字的模数,并检查其是否大于 0。如果余数大于 0,则将第一个表达式加一个,如果为 false,则将第一个表达式加 0。

下面给出了一个示例代码,以说明如何在 Python 中使用简单的算术对数字进行舍入而无需导入 math 库。

n = 22
div = 5
print(int(n/div) + (n % div>0))

输出:

5

在 Python 中使用取整除法运算符来舍入一个数字

取整除法运算符的符号是//。它的作用方式与简单的除法运算符/相同,但它还会舍入数字。所以,在 Python 中,它通常被用来向下舍入数字。然而,我们也可以修改它的用法,将一个数字向上舍入。我们可以通过用数除以答案来做到这一点。这将节省任何导入或使用 float 和任何其他条件的费用。它只对整数起作用。

下面给出了一个示例代码,以详细说明如何使用取整除法在 Python 中四舍五入一个数字。

n = 22
div = 5
answer = (-(-n//div))
print(answer)

输出:

5

类似地,我们可以通过将分母加到分子上并从中减去 1 来舍入一个数字。然后整个表达式将被底数除以分母。这是一种直接方法,不涉及任何浮点和外部模块。下面给出了此方法的示例代码。

numerator = 22
denominator  = 5
answer = (numerator + denominator - 1) // denominator
print(answer)

输出:

5

在 Python 中使用 numpy.ceil() 方法四舍五入一个数字

舍入数字的另一种方法是使用 numpy.ceil() 方法。首先,我们需要在脚本中导入 NumPy 模块,然后使用 ceil() 方法将数字取整。ceil() 函数的返回类型为 float,因此即使表达式为整数,输出也将为 float。通过将输出显式转换为整数,可以将输出显式转换为整数数据类型。

下面给出了在 Python 中四舍五入该方法的示例代码。

import numpy as nmp
n = 22
div = 5
answer = n/div
print(nmp.ceil(answer))
print(int(nmp.ceil(answer)))

输出:

5.0
5
Syed Moiz Haider avatar Syed Moiz Haider avatar

Syed Moiz is an experienced and versatile technical content creator. He is a computer scientist by profession. Having a sound grip on technical areas of programming languages, he is actively contributing to solving programming problems and training fledglings.

LinkedIn

相关文章 - Python Number