Python中,浮點數運算,經常會碰到如下情況:
出現上面的情況,主要還是因浮點數在計算機中實際是以二進制保存的,有些數不精確。
比如說: 0.1是十進制,轉化為二進制后它是個無限循環的數:
0.00011001100110011001100110011001100110011001100110011001100
而python是以雙精度(64)位來保存浮點數,多余的位會被截掉,所以看到的是0.1,但在電腦上實際保存的已不是精確的0.1,參與運算后,也就有可能點誤差,特別是金融鄰域里面,對精度更是要求更高,如何在Python中獲取特定位數精度值?
【方法一】利用round方法:
【方法二】利用decimal模塊: