在 Python 中四捨五入一個數字
-
在 Python 2.x 中使用
math.ceil()
函式四捨五入一個數字 - 在 Python 中使用簡單的算術方法將一個數字四捨五入
- 在 Python 中使用取整除法運算子來舍入一個數字
-
在 Python 中使用
numpy.ceil()
方法四捨五入一個數字
本教程介紹了各種方法來解釋對數字進行舍入的概念。有多種方法可以以正確的方式四捨五入一個數字。例如,可以使用 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 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