在 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