python(62):保留兩位小數

轉載:https://blog.csdn.net/jiandanjinxin/article/details/77752297函數

在C/C++語言對於整形數執行除法會進行地板除(捨去小數部分)。spa

例如 int a=15/10; a的結果爲1。.net

一樣的在Java中也是如此,因此兩個int型的數據相除須要返回一個浮點型數據的時候就須要強制類型轉換,例如 float a = (float)b/c ,其中b、c都是int型數據。code

Python中分爲3種除法:傳統除法、精確除法、地板除。 orm

傳統除法 blog

若是是整數除法則執行地板除,若是是浮點數除法則執行精確除法ci

  >>>1/2  
    0  
  >>>1.0/2.0  
    0.5  

精確除法 unicode

除法老是會返回真實的商,無論操做數是整形仍是浮點型。字符串

執行from future import division 指令就能夠作到這一點。get

# -*- 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開始,增長了一個操做符 // ,以執行地板除://除法無論操做數爲什麼種數值類型,老是會捨去小數部分,返回數字序列中比真正的商小的最接近的數字。

>>>1//2 
0 
>>>1.0//2 
0 
>>>-1//2.0
-1 

內建函數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))  

保留兩位小數

In [1]: a = 5.026

In [2]: b = 5.000

In [3]: round(a,2)
Out[3]: 5.03

In [4]: round(b,2)
Out[4]: 5.0

In [5]: '%.2f' % a
Out[5]: '5.03'

In [6]: '%.2f' % b
Out[6]: '5.00'

In [7]: float('%.2f' % a)
Out[7]: 5.03

In [8]: float('%.2f' % b)
Out[8]: 5.0

In [9]: from decimal import Decimal

In [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')

當須要輸出的結果要求有兩位小數的時候,字符串形式的:’%.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))
相關文章
相關標籤/搜索