通常,python四捨五入使用內建的round函式就可以了
>>> round(0.4)
0.0
>>> round(0.5)
1.0
然而,對於需要精確的四捨五入,就有問題
>>> round(1.115,2) # no
1.11
>>> round(1.125,2) # yes
1.13
原因是,部分小數無法完全用二進位制表示
再來看一下步驟一的兩個數值
於是,作為一個較方便的做法,我們可以使用下面方式實現精確的四捨五入:
def round_up(value):
"""四捨五入保留2位小數
:param value:數值
:return:四捨五入後的值
"""
# 替換內建round函式,實現保留2位小數的精確四捨五入
return round(value * 100) / 100.0
6
原理就是將數值放大100倍,以利用下面的精確的四捨五入的結果
7
測試一下:
>>> round_up(1.115)
1.12
>>> round_up(1.125)
通常,python四捨五入使用內建的round函式就可以了
>>> round(0.4)
0.0
>>> round(0.5)
1.0
然而,對於需要精確的四捨五入,就有問題
>>> round(1.115,2) # no
1.11
>>> round(1.125,2) # yes
1.13
原因是,部分小數無法完全用二進位制表示
再來看一下步驟一的兩個數值
於是,作為一個較方便的做法,我們可以使用下面方式實現精確的四捨五入:
def round_up(value):
"""四捨五入保留2位小數
:param value:數值
:return:四捨五入後的值
"""
# 替換內建round函式,實現保留2位小數的精確四捨五入
return round(value * 100) / 100.0
6
原理就是將數值放大100倍,以利用下面的精確的四捨五入的結果
7
測試一下:
>>> round_up(1.115)
1.12
>>> round_up(1.125)
1.13