Python小撇步:round無法真正的四捨五入

許博淳
數據共筆
Published in
Jul 27, 2022

參考資料來源:https://medium.com/%E7%A8%8B%E5%BC%8F%E4%B9%BE%E8%B2%A8/python-round-%E5%9B%9B%E6%8D%A8%E4%BA%94%E5%85%A5-%E7%9A%84%E5%B0%8F%E5%9D%91-7ef8accad931

簡單來說,因為電腦是2進位,1.5其實是1.499…

這個情況下,如果四捨五入,一定會出錯,會變成五捨六入。

在解 leetcode的時候不太能 import package來使用,那有沒有什麼簡單快速的解法。

加 0.1

誠如前面所解說的,0.1其實是 0.099…,所以1.5+0.1 = 1.499…+0.099… =1.5…,四捨五入後就會得到 2。

同時我們也排除其他不小心進位的可能性。

  • 1.4 + 0.1 = 1.399… + 0.099… = 1.4… < 1.5,四捨五入得到1。
  • 2.4 + 0.1 = 2.399… + 0.099… = 2.4…<2.5,四捨五入得到2。

是不是一個有趣的方法呢? 歡迎給我各種建議。

--

--