python如何實(shí)現(xiàn)向上取整
python如何取整
數(shù)據(jù)處理是編程中不可避免的,很多時(shí)候都需要根據(jù)需求把獲取到的數(shù)據(jù)進(jìn)行處理,取整則是最基本的數(shù)據(jù)處理。
取整的方式則包括向下取整、四舍五入、向上取整等等。
1、向下取整
向下取整直接用內(nèi)建的 int() 函數(shù)即可:
>>> a = 3.75 >>> int(a) 3
2、四舍五入
對(duì)數(shù)字進(jìn)行四舍五入用 round() 函數(shù):
>>> round(3.25); round(4.85) 3.0 5.0
3、向上取整
向上取整需要用到 math 模塊中的 ceil() 方法:
>>> import math >>> math.ceil(3.25) 4.0 >>> math.ceil(3.75) 4.0 >>> math.ceil(4.85) 5.0
4、分別取整數(shù)部分和小數(shù)部分
有時(shí)候我們可能需要分別獲取整數(shù)部分和小數(shù)部分,這時(shí)可以用 math 模塊中的 modf() 方法,該方法返回一個(gè)包含小數(shù)部分和整數(shù)部分的元組:
>>> import math >>> math.modf(3.25) (0.25, 3.0) >>> math.modf(3.75) (0.75, 3.0) >>> math.modf(4.2) (0.20000000000000018, 4.0)
有人可能會(huì)對(duì)最后一個(gè)輸出結(jié)果感到詫異,按理說它應(yīng)該返回 (0.2, 4.0) 才對(duì)。
這里涉及到了另一個(gè)問題,即浮點(diǎn)數(shù)在計(jì)算機(jī)中的表示,在計(jì)算機(jī)中是無法精確的表示小數(shù)的,至少目前的計(jì)算機(jī)做不到這一點(diǎn)。
上例中最后的輸出結(jié)果只是 0.2 在計(jì)算中的近似表示。
python中的取整問題
雖然取整是各種語言中最基礎(chǔ)的操作, 可是往往多了一個(gè)1或者少了一個(gè)1會(huì)導(dǎo)致巨大的災(zāi)難,所以我覺得還是很有必要寫一下的。
python中的取整操作有://, round, int, ceil, floor, 其他語言也有類似的函數(shù)來進(jìn)行取整。
先看一段代碼
import math
def test_round(a, b):
? ? print('-------------------------------------')
? ? print(f'{a}/=', a/b)
? ? print(f'{a}//=', a//b)
? ? print(f'round({a}/)=', round(a/b))
? ? print(f'int({a}/)=', int(a/b))
? ? print(f'ceil({a}/)=', math.ceil(a/b))
? ? print(f'floor({a}/)=', math.floor(a/b))
test_round(3, 2)
test_round(-3, 2)打印結(jié)果:
-------------------------------------
3/2= 1.5
3//2= 1
round(3/2)= 2
int(3/2)= 1
ceil(3/2)= 2
floor(3/2)= 1
-------------------------------------
-3/2= -1.5
-3//2= -2
round(-3/2)= -2
int(-3/2)= -1
ceil(-3/2)= -1
floor(-3/2)= -2
可以看出, //操作結(jié)果和floor是一樣的。
總的來說, ceil:坐標(biāo)軸上向上取整, floor:向下取整, int:向中(0)取整(直接去掉浮點(diǎn)位)。
而round則是四舍五入(不考慮符號(hào))
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Django如何創(chuàng)作一個(gè)簡單的最小程序
這篇文章主要介紹了Django如何創(chuàng)作一個(gè)簡單的最小程序,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-05-05
python實(shí)現(xiàn)將range()函數(shù)生成的數(shù)字存儲(chǔ)在一個(gè)列表中
這篇文章主要介紹了python實(shí)現(xiàn)將range()函數(shù)生成的數(shù)字存儲(chǔ)在一個(gè)列表中,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-04-04
Python數(shù)據(jù)分析:pandas中Dataframe的groupby與索引用法
這篇文章主要介紹了pandas中Dataframe的groupby與索引用法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-02-02
Python如何將兩個(gè)Excel文件按相同字段合并到一起
文章介紹了如何使用Pandas工具將兩個(gè)關(guān)聯(lián)的Excel文件合并成一個(gè),首先創(chuàng)建兩個(gè)Excel文件test1和test2,然后使用Pandas進(jìn)行合并,最后顯示新創(chuàng)建的Excel文件2025-02-02
Python中urllib+urllib2+cookielib模塊編寫爬蟲實(shí)戰(zhàn)
這篇文章主要介紹了Python的urllib+urllib2+cookielib模塊編寫爬蟲實(shí)戰(zhàn),文中給出了抓取豆瓣同城和登陸圖書館查詢圖書歸還的爬取例子,需要的朋友可以參考下2016-01-01
淺談sklearn中predict與predict_proba區(qū)別
這篇文章主要介紹了淺談sklearn中predict與predict_proba區(qū)別,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-06-06

