1、通常,python四舍五入使用內置的round函數就可以了。
成都創新互聯公司專業為企業提供北林網站建設、北林做網站、北林網站設計、北林網站制作等企業網站建設、網頁設計與制作、北林企業網站模板建站服務,10多年北林做網站經驗,不只是建網站,更提供有價值的思路和整體網絡服務。
2、然而,對于需要精確的四舍五入,就有問題。
3、原因是,部分小數無法完全用二進制表示。
3、于是,作為一個較方便的做法,我們可以使用下面方式實現精確的四舍五入:def round_up(value):? ? ?"""四舍五入保留2位小數 :param value:數值。
4、原理就是將數字放大100倍,以利用下面的精確的四舍五入的結果 。
import math
r=math.floor(3.2) #向下取整
print(r)
r=math.ceil(4.5) #向上取整
print(r)
r=abs(-2)
r=round(4.5) #四舍五入
r=math.pow(3,2) #冪運算
r=math.sqrt(25) #開平方
其中 函數fabs和abs的區別:函數fabs的作用是求浮點數x的絕對值;函數abs的作用是求x的絕對值。fabs函數原型:double fabs(double x);abs函數原型:int fabs(int x)。fabs函數參數:參數x是一個浮點數;abs函數參數:參數x是一個整數
結果是?-4
對正數是向下取整,對負數是向上取整。
學python的一個缺點就是對數據類型的基礎理解比較少,
你可以用二進制來理解下,舉一個有符號的二進制為例子:
對于無符號的?0b000~0b111?來說分別有
0b000?=?0;
0b001?=?1;
0b010?=?2;
0b011?=?3;
0b100?=?4;
0b101?=?5;
0b110?=?6;
0b111?=?7;
比如?uint?就是?int?的無符號形式。
當相同數據為有符號形式時變為:
0b000?=?0;
0b001?=?1;
0b010?=?2;
0b011?=?3;
0b100?=?-4;
0b101?=?-3;
0b110?=?-2;
0b111?=?-1;
(參考原碼、反碼、補碼)
所以根據這個規則,對float,double等數字是同理,在floor時將有符號位進行省略,如以下位運算():
0b000??1?=?0b000
0b001??1?=?0b000
有?0-0?和?1?-?0
0b010??1?=?0b001
0b011??1?=?0b001
有?2-?1?和?3?-?1
按照這個丟失精度的方法計算負數呢?
0b111??1?=?0b111
0b110??1?=?0b111
0b101??1?=?0b110
0b100??1?=?0b110
可知:
-1?-?-1?與?-2?-?-1
-3?-?-2?與?-4?-?-2
所以對負數的?floor?會向上取整,因為丟失精度的方法是直接根據小數點截斷的。
是利用原來的向下取整的機制如果原來是
實際上Python的round()函數可以接受兩個參數round(value,ndigits),第一個參數為實際操作數,第二個參數為實際保留幾位,如果第二個參數不填,則默認保留到整數位。
Python3.X對于浮點數默認的是提供17位數字的精度。
文章標題:python中取整的函數 python中如何取整
文章源于:http://m.newbst.com/article12/doojjdc.html
成都網站建設公司_創新互聯,為您提供小程序開發、企業網站制作、手機網站建設、域名注冊、ChatGPT、標簽優化
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯