python(數據精度處理)


一、取整處理

1.int() 向下取整 內置函數 

1 n = 3.75
2 print(int(n))
>>> 3 3 n = 3.25 4 print(int(n))
>>> 3

2.round() 四舍五入 內置函數

1 n = 3.75
2 print(round(n))
>>> 4 3 n = 3.25 4 print(round(n))
>>> 3

3. floor() 向下取整 math模塊函數 

floor的英文釋義:地板。顧名思義也是向下取整

復制代碼
1 import math
2 n = 3.75
3 print(math.floor(n))
>>> 3 4 n = 3.25 5 print(math.floor(n))
>>> 3
復制代碼

4.ceil()向上取整 math模塊函數

ceil的英文釋義:天花板。

復制代碼
1 import math
2 n = 3.75
3 print(math.ceil(n))
>>> 4 4 n = 3.25 5 print(math.ceil(n))
>>> 4
復制代碼

5.modf() 分別取整數部分和小數部分 math模塊函數

該方法返回一個包含小數部分和整數部分的元組
復制代碼
1 import math
2 n = 3.75
3 print(math.modf(n))
>>> (0.75, 3.0) 4 n = 3.25 5 print(math.modf(n))
>>> (0.25, 3.0) 6 n = 4.2 7 print(math.modf(n))
(0.20000000000000018, 4.0)
復制代碼

最后一個的輸出,涉及到了另一個問題,即浮點數在計算機中的表示,在計算機中是無法精確的表示小數的,至少目前的計算機做不到這一點。上例中最后的輸出結果只是 0.2 在計算中的近似表示。Python 和 C 一樣, 采用 IEEE 754 規范來存儲浮點數。

 

二、小數處理

1.數據精度處理,保留小數位數

(1)%f四舍五入方法 ---> "%.2f"

  • 這個方法是最常規的方法,方便實用
a = 1.23456

print ('%.4f' % a)
print ('%.3f' % a)
print ('%.2f' % a)

----->1.2346
----->1.235
----->1.23

(2)不四舍五入

  • 方法1:使用序列中切片
#coding=utf-8

a = 12.345
print (str(a).split('.')[0] + '.' + str(a).split('.')[1][:2])


----> '12.34'
  • 方法2:使用re正則匹配模塊
import re
a = 12.345
print (re.findall(r"\d{1,}?\.\d{2}", str(a)))

---->['12.34']


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM