Python 四捨五入的五種方法

是否在Python中遇到過需要對數字進行四捨五入的情況呢?有五種常見且實用的四捨五入函數,可以幫助我們處理各種複雜的數值計算

文章重點

 

1. round 函數的應用場景

2. floor 和 ceil 的應用場景

3. numpy 模組的優勢

4. decimal 模組的精確計算

資源

  • Paul Yang GitHub

 

觀看實際操作

 

基本用法

1. round 函數

首先,最簡單的四捨五入函數是 round,它可以接受一個數字和一個精度參數,然後返回一個按照指定精度四捨五入的數字。例如:

				
					
print(round(3.14159, 2))  # 3.14
print(round(3.5))         # 4

				
			

我們可以把 round 函數比喻為一把刀,它可以將數字切成我們想要的長度,如果有多餘的小數位,它就會根據最近的整數來決定是否切掉。

 

2. math.floor 函數

另一個常用的四捨五入函數是 math.floor,它可以接受一個數字,然後返回一個不大於該數字的最大整數。例如:

				
					
import math
print(math.floor(3.14159))  # 3
print(math.floor(-3.14159)) # -4

				
			

我們可以把 math.floor 函數比喻為一個漏勺,它可以將數字中的小數部分過濾掉,只留下整數部分。

 

3. math.ceil 函數

math.floor 函數相對應的是 math.ceil 函數,它可以接受一個數字,然後返回一個不小於該數字的最小整數。例如:

				
					
print(math.ceil(3.14159))  # 4
print(math.ceil(-3.14159)) # -3

				
			

我們可以把 math.ceil 函數比喻為一個湯匙,它可以將數字中的整數部分加一,讓它更靠近下一個整數。

 

4. numpy 模組中的四捨五入函數

除了 math 模組之外,我們還可以使用 numpy 模組中的四捨五入函數,例如 numpy.roundnumpy.floornumpy.ceil。這些函數的用法與 math 模組中的相同,但是它們可以接受一個數值陣列,並返回一個同形狀的四捨五入後的數值陣列。例如:

				
					
import numpy as np
print(np.round([3.14159, 2.71828], 2))  # [3.14, 2.72]
print(np.floor([-3.14159, 2.71828]))    # [-4., 2.]


				
			

我們可以把 numpy 模組中的四捨五入函數比喻為一把剪刀,它可以將一串數字按照我們的要求裁剪成不同的長度。

 

5. decimal.Decimal.quantize 函數

最後一個四捨五入函數是 decimal.Decimal.quantize,它可以接受一個 Decimal 物件和一個精度參數,然後返回一個按照指定精度和四捨五入規則的 Decimal 物件。例如:

				
					
from decimal import Decimal, ROUND_HALF_UP

x = Decimal('3.14159')
y = Decimal('0.01')
print(x.quantize(y, rounding=ROUND_HALF_UP))  # 3.14

				
			

我們可以把 decimal.Decimal.quantize 函數比喻為一個稱,它可以將數字按照我們的需求量出準確的重量,並且可以選擇不同的四捨五入規則,例如最接近的數字、最接近的偶數、向上取整或向下取整等。

 

深入了解與應用

1. round 函數的應用場景

round 函數在處理貨幣計算、測量值和統計數據時非常有用。例如,在金融計算中,我們經常需要對金額進行四捨五入到小數點後兩位,以確保精確的貨幣計算:

				
					
price = 19.995
final_price = round(price, 2)  # 20.00
print(final_price)


				
			

 

2. floor 和 ceil 的應用場景

math.floormath.ceil 函數在處理向下和向上取整的情況非常有用。例如,在需要確保不超過某個值或不低於某個值時,它們可以提供精確的控制:

				
					
# 向下取整以確保不超過容量
capacity = math.floor(3.8)
print(capacity)  # 3

# 向上取整以確保滿足需求
seats_needed = math.ceil(7.2)
print(seats_needed)  # 8


				
			

 

3. numpy 模組的優勢

使用 numpy 進行批量數據處理時,它的性能和靈活性尤為突出。在科學計算和數據分析中,經常需要對大量數據進行四捨五入處理:

				
					
# 生成一個隨機數組
data = np.random.randn(5)
rounded_data = np.round(data, 2)
print(rounded_data)


				
			

 

4. decimal 模組的精確計算

decimal 模組在需要高精度計算的場景中非常有用。例如,在科學計算和金融應用中,精確的數字表示和四捨五入規則是必不可少的:

				
					
from decimal import Decimal, getcontext

getcontext().prec = 6
value = Decimal('3.141592653589793')
rounded_value = value.quantize(Decimal('1.00000'), rounding=ROUND_HALF_UP)
print(rounded_value)  # 3.14159



				
			

結語

 

Python 提供了多種四捨五入數字的方法,每種方法都有其獨特的應用場景和優勢。根據具體需求選擇合適的函數,可以幫助我們更高效、更精確地處理數據。希望本文能幫助您更好地理解和應用這些四捨五入函數,提升編程效率。

歡迎在評論區分享您的心得和問題,讓我們一起進步!

 
 
 

Leave a Comment

Your email address will not be published. Required fields are marked *

加入 2,000+ 位科技專業人士的行列,每週獲取我們的最佳職涯建議!

— 現在訂閱就會收到2025年最新
「AI職場技能提升包」 —

訂閱我們的電子報,
掌握最新技術面試
技巧!