Python中的除法保留两位小数
在C/C++語言對(duì)于整形數(shù)執(zhí)行除法會(huì)進(jìn)行地板除(舍去小數(shù)部分)。例如 int a=15/10; a的結(jié)果為1。
同樣的在Java中也是如此,所以兩個(gè)int型的數(shù)據(jù)相除需要返回一個(gè)浮點(diǎn)型數(shù)據(jù)的時(shí)候就需要強(qiáng)制類型轉(zhuǎn)換,例如 float a = (float)b/c ,其中b、c都是int型數(shù)據(jù)。
Python中分為3種除法:傳統(tǒng)除法、精確除法、地板除。
傳統(tǒng)除法
如果是整數(shù)除法則執(zhí)行地板除,如果是浮點(diǎn)數(shù)除法則執(zhí)行精確除法
>>>1/2 0 >>>1.0/2.0 0.5精確除法
除法總是會(huì)返回真實(shí)的商,不管操作數(shù)是整形還是浮點(diǎn)型。執(zhí)行from future import division 指令就可以做到這一點(diǎn)。
# -*- coding: UTF-8 -*- from __future__ import division from __future__ import print_function from __future__ import unicode_literals >>>1/2 0.5 >>>1.0/2.0 0.5地板除
從Python2.2開始,增加了一個(gè)操作符 // ,以執(zhí)行地板除://除法不管操作數(shù)為何種數(shù)值類型,總是會(huì)舍去小數(shù)部分,返回?cái)?shù)字序列中比真正的商小的最接近的數(shù)字。
>>>1//2 0 >>>1.0//2 0 >>>-1//2.0 -1內(nèi)建函數(shù)divmod()
divmod (a,b),返回(a//b,a%b)
>>>divmod(1,2) (0,1) >>>divmod(3.14159,1.5) (2.0,0.4159000000000002) >>>5+6j//3+2j 2+0j >>>5+6j%3+2j -1+2j >>>divmod(5+6j,3+2j) ((2+0j),(-1+2j))保留兩位小數(shù)
In [1]: a = 5.026In [2]: b = 5.000In [3]: round(a,2) Out[3]: 5.03In [4]: round(b,2) Out[4]: 5.0In [5]: '%.2f' % a Out[5]: '5.03'In [6]: '%.2f' % b Out[6]: '5.00'In [7]: float('%.2f' % a) Out[7]: 5.03In [8]: float('%.2f' % b) Out[8]: 5.0In [9]: from decimal import DecimalIn [10]: Decimal('5.026').quantize(Decimal('0.00')) Out[10]: Decimal('5.03')In [11]: Decimal('5.000').quantize(Decimal('0.00')) Out[11]: Decimal('5.00')
當(dāng)需要輸出的結(jié)果要求有兩位小數(shù)的時(shí)候,字符串形式的:’%.2f’ % a 方式最好,其次用Decimal
round(a,2) '%.2f' % a Decimal('5.000').quantize(Decimal('0.00')) a = 1 b = 3 print(a/b) #方法一: print(round(a/b,2)) #方法二: print(format(float(a)/float(b),'.2f')) #方法三: print ('%.2f' %(a/b))參考文獻(xiàn)
Python中的除法
python保留兩位小數(shù)
總結(jié)
以上是生活随笔為你收集整理的Python中的除法保留两位小数的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 战争雷霆豹1沙漠迷彩涂装欣赏及下载
- 下一篇: 少女前线俄制枪械的科普 俄制枪娘历史介绍