利息被銀行四捨五入後,你到底是賺了還是虧了?答案和想的不太一樣

2020-12-10 中科院物理所

撰文 七君

大家在小學就會學四捨五入對吧,四及以下被捨去,五以及更大的數字則進1。

這個在平時做題的時候沒有什麼問題,畢竟做錯做對也不會來錢。那麼問題來了,銀行交易的最小單位是分,被小數點約掉的錢雖然不多,但是如果按照我們小學的四捨五入,你和銀行到底誰虧誰賺呢?

舉個例子,比如給5位儲戶的利息分別是0.000、0.001、0.002、0.003、0.004,這些利息被四捨五入掉了,因此銀行賺了。

但是另外五位儲戶的利息是0.005、0.006、0.007、0.008、0.009,那麼他們每人拿到的利息就是0.01,銀行虧了。

而根據本福德定律的發現者弗蘭克·本福德的測算,非第一位的數基本上符合隨機分布,也就是0-9這10個數字出現的概率相同。那麼每付出10筆利息,銀行的總收益就是:

0.000 + 0.001 + 0.002 + 0.003 + 0.004 - 0.005 - 0.004 - 0.003 - 0.002 - 0.001 = -0.005

看到了吧,妥妥的虧錢。這還只是付10筆利息的情況,如果銀行有上百萬上千萬的儲戶,那麼虧損就更大了,每千萬筆利息,銀行要虧5千塊。

也就是說,四捨五入其實不利於銀行,而有利於儲戶。

話說回來,傳統的四捨五入讓銀行虧錢的原因是因為把5都往大了算。為了減小差,有人設計出了一種叫做銀行家捨入(Banker's Rounding)的算法。它的規則是這樣的:

4及以下直接捨去;大於等於6時,進位後捨去;這兩點和四捨五入一樣;5的情況比較複雜,如果5後面還有數字,則進位後捨去;如果5後面沒有數字了,那麼如果5前面是奇數,則進1,若5前面是偶數直接捨去5。舉幾個例子:

3.016 ≈ 3.02

3.013 ≈ 3.01

3.015 ≈ 3.02

3.045 ≈ 3.04

3.04501 ≈ 3.05

如果數字隨機分布,則銀行家捨入引起的誤差比傳統的四捨五入小,因為銀行家捨入法在計算時,平均一半的數變大,而另一半變小。當然,銀行家捨入也不是完全沒有誤差,其誤差和操作次數的平方根成正比。

不過需要指出的是,雖然這種捨入法叫「銀行家捨入」,但實際上和銀行關係不大。

我國金融系統的大部分算法就是用四捨五入。比如分以下的利息、中國國際收支平衡表、商業銀行向中國人民銀行繳存的準備金、《中華人民共和國外資金融機構管理條例》中的儲備金等都是用的四捨五入。

國內銀行計算利息時,分位以下四捨五入。圖片來源:張蓮苓.商業銀行會計(第二版).中國財政經濟出版社, 2015

國際上,歐盟委員會對換匯時的捨入規定也是四捨五入。

真正廣泛採用銀行家捨入法的,是需要更小誤差的科學和計算機系統,因此銀行家捨入也常常叫做統計學家捨入(statistician's rounding),無偏捨入(unbiased rounding)。

1940年開始,美國材料和試驗協會(ASTM)用的就是銀行家捨入法。現在大部分編程軟體的默認設置都是銀行家捨入法,比如C/C++、JavaScript、PHP、Go,英特爾處理器用的也是銀行家捨入。

不過,不管是四捨五入還是各種花式捨入法,都無法避免誤差累積的問題。我們來看看幾個捨入引起的超級烏龍事件。

1982年,加拿大推出了溫哥華證券交易所指數VSEI。VSEI 是1500家上市公司的指數合成所得,類似於咱們的上證指數,用來衡量股市的整體走勢。

VSEI的初始值是1000點。但是1983年11月,VSEI跌到了524.811點,和一開始相比跌去了近一半。但奇怪的是,構成VSEI的幾個股票本身並沒有跌這麼慘,所以股指到底怎麼了呢?

原來,這是捨入誤差造成的烏龍。VSEI的計算交由電腦程式自動處理,計算到小數點後第4位。但是,報告中只用了小數點後的3位,最後一位是直接被掐掉的。

因此,每次計算,VSEI的真實值和報告值之間就出現了一個很小但可逐漸累積的誤差。而等到1983年11月,這個誤差已經壯觀到肉眼可見了。

後來,溫哥華證券交易所的人花了3周的時間才想明白了重新計算股指的方法。一夜之間,VSEI就從524.811點平白無故地跳到了1098.892點。

捨入誤差不光造成金融界的烏龍,還曾造成美軍重大傷亡。

海灣戰爭期間,在沙特的愛國者飛彈的計算機精度為24位,有0.0001%的計時誤差。運行100小時後,飛彈的計算機系統累積了0.3422秒的誤差,最終沒能攔截伊拉克發射的一枚飛毛腿飛彈,造成28名美國陸軍死亡。

還有一些人利用捨入的誤差攻擊金融系統賺錢。

因為日常的金融操作的最小單位是分,也就是小數點後2位,在匯率換算的時候也是如此,有人就想到,可以人為使這個誤差朝使自己有利的方向偏移。

舉個例子。0.01日元換成美元是0.000093美元,銀行不可能把你的錢換沒了,所以只能給你0.01美元,這樣一來,你就白賺了99.07%。

1分錢雖然是小錢,但蒼蠅也是肉,如果循環多次交易,就能利用捨入誤差套利。用100日元換1萬次,就能賺99美金。

Adrian Furtuna 製造的用於讀取銀行徵信儀器代碼的設備。圖片來源:BBC

2013年,羅馬尼亞計算機安全學家 Adrian Furtuna 發現,歐元在換算成羅馬尼亞的貨幣的過程中可以通過這種方法套利。他就利用外匯捨入的漏洞設計了一款自動賺錢機器。如果能全速運轉,這臺機器每天就能通過數千次小額交易賺取70歐元。

因為這種交易是在銀行設置的合法語境下進行的,所以銀行只能吃啞巴虧。銀行把這種套利行為取名為「邏輯攻擊」(logical attack)。當然,銀行也有應對措施,比如收取交易費、設定最小換匯數額,或者限制每日換匯次數等等。

這種對金融系統的攻擊,就屬於著名的「臘腸術」——神不知鬼不覺地把一片片薩拉米切下來,合起來就是一根完整的臘腸啦。

歷史上的確發生過很多次臘腸攻擊的案件,不少影視作品也有相應描述,比如1983年的《超人》、1999年的《電影上班一條蟲》。

在《上班一條蟲》中,男主利用黑客技術篡改了銀行的利息算法,把普通儲戶被四捨五入掉的利息全部轉到了他的帳戶裡,超爽der。

臘腸攻擊不僅適用於銀行,也適用於稅務系統。

想想看,如果一家公司有很多員工,把員工交的稅分開來計算和合起來計算的數額會因為捨入的問題而略有差異,公司就可以利用多次捨入而少交稅。

為了避免有人利用這個漏洞,美國國家稅務局就設定了相應的規定(fractions of cents adjustment),使得公司在報稅時沒有捨入的漏洞可鑽。

總之,只有小學生會瞧不起四捨五入,大人都是用它賺錢養小學生。

一個悲傷的悖論:四捨五入有利於儲戶,而我的1分錢帳戶卻永遠沒有利息。

無標註圖片來源網絡。

動圖來源和參考資料儲存於石墨:

https://shimo.im/docs/3CkW6QWWjt3Y6Cwv/

來源:把科學帶回家

編輯:他和貓

相關焦點

  • 九月出生的孩子,到底是虧了還是賺了?
    導讀:九月出生的孩子,到底是虧了還是賺了?各位點開這篇文章的朋友們,想必都是很高的顏值吧,我們真的是很有緣哦,小編每天都會給大家帶來不一樣的育兒資訊,如果對小編的文章或者其他的什麼,有什麼一些意見的話歡迎在下方積極評論哦,小編每條都會認真看的。那麼本期的內容是:九月出生的孩子,到底是虧了還是賺了?那麼我們就來看看吧!
  • 有趣的數學問題:一張賺了20%,另一張虧了20%,他是賺了還是虧了
    有這樣一個有趣的數學問題,喜歡在數學上探究的你,肯定對它有興趣!話說,有一個人喜歡集郵,買進了兩張郵票,後來因缺錢花,又將它賣了出去。每張賣價1800元,其中一張賺了20%,另一張虧了20%,問這個人到底賺了?還是虧了?賺或虧多少錢?
  • 全款買車的人, 到底虧了多少錢?
    如果這些錢你本來準備去在2008年首付三成買北京房子,那麼相當於到2009年虧了100萬——當然,到現在就虧了300萬了。如果這些錢你本來準備存銀行,那麼大概虧了幾千元。如果這些年你本來準備炒股,那麼可能反而賺了一點錢。如果這些錢你本來準備去賭博,那麼恭喜你,你賺了20萬。
  • 銀行每天賺28億:為什麼,不願意給老百姓加點利息?
    四大行今年上半年淨利潤合計5043.09億元,相當於每日淨賺27.86億元,看到地表最強的銀行掙錢能力還是這麼強,真是印證了那句話,你大爺還是你大爺,銀行大哥們,請收下我的膝蓋。其實,銀行賺錢的套路相當簡單:第一步:低息吸收存款,銀行用的,都不是自己的錢,社會的錢是無限的,這樣生意才會越做越大。
  • 房貸20年已還10年,想一次性還清,合適嗎?銀行經理:太虧了!
    商品房為此,筆者特意請教了一位「四大行」的銀行經理,他告訴我:這樣操作太虧了!這是為什麼呢?接下來筆者就帶大家一起詳細算算。節省利息對吧。但是,我要告訴你的是,貸款買房,前幾年還的大多數錢都是利息,而非本金,也就是說,你想提前還款節省利息,可不曾想,利息都已經快還完了,而省下的大多數錢都是本金。
  • 王師傅賣魚進價45元虧了多少錢數學題正確答案怎麼算?
    事後鄰居存錢過程中發現錢是假的,被銀行沒收了,王師傅又賠了鄰居100,請問王師傅一共虧了多少?(這道題目不簡單,到底虧了多少?)  網上關於這道王師傅是賣魚的到底虧了多少錢的答案有許多種,到底王師傅虧了多少錢?下面小編就給大家分析下這道商業數學題王師傅賣魚虧多少錢的正確答案算法分析。
  • 銀行「利息」太少?行長透露:存款達到「這數」,每月利息5000元
    今年的市場經濟不太好,「突發事件」讓越來越多的國人意識到存錢的重要性。但有一點是肯定的。與20年前相比,生活水平提高了,但收入沒有增加多少。許多人已經開始用銀行存款來「吃老本」。這就產生了一個非常有趣的問題:被隔離在家裡幾個月,覺得不想去上班了。那麼我需要在銀行存多少錢,每月的利息和工資夠一個月的生活呢?
  • 過生日到底該過陰曆還是陽曆?答案可能和你想的不太一樣
    過生日到底該過陰曆還是陽曆?答案可能和你想的不太一樣生日對於每個人來說都有重要的意義。因為每過一個生日,都代表著我們長大了一歲。可是在我們國家,一般都有兩種過生日的計算方法。一個是按照陽曆,一個則是按照陰曆。而且在時間上也會有一些出入。
  • 銀行存款等於躺賺!500萬現金存銀行,每年利息收入大概是這個數
    文/名譽主編:張平每個人都不會跟錢過不去,在有限的生命裡,大家都想多賺一些錢。沒錢的人努力工作開始攢錢,而手裡有一定資金的人又考慮如何繼續讓錢升值,說白了就是錢生錢。把錢存入銀行可以拿到可觀的利息,由於利率基本是固定的,所以存款利息多少是跟存款本金和存款期限相關的。既然大家都知道存款可以獲得一筆穩定的收益,那麼全靠存款利息是否可以過上衣食無憂的生活呢?今天我們就做一個假設,假設你具有500萬現金,計算一下存款到底能拿到多少利息。
  • 存錢到底應該在哪家銀行?2019年銀行存款利息,這家才是最高的!
    其次就是因為理財產品的出現,人們不再滿足於拿固定利息,而是拿錢去理財了。雖然新一代的年輕人可能都不太會有存錢的習慣,但是為了生活還是會有一些人留下一下存款,尤其是老一輩的長者,更喜歡把錢放在銀行裡面,似乎這樣更加踏實。那麼我們都知道,在銀行裡面存錢是有利息可以拿的,根據你存錢的年限不同、數額不同,所可以拿到的利息也是不同的。
  • 如果在銀行存一個億,能靠利息過日子嗎?貧窮限制我的想像力!
    一個億,如果你去存銀行。那麼銀行行長都會親自出面來歡迎你的,利率什麼的肯定是比較好談,畢竟能夠存一個億的富豪真的是不多見的。如果你存到四大國有銀行的話,存3年定期存款的話,有可能利息能夠達到4.5%左右,可能還能夠按月付息,這樣的話,就能夠比較方便的花銷了。
  • 100萬存銀行,一年有多少利息?銀行員工:這樣存相當於一份工資
    還有的人靠著炒房,拆遷等賺到了錢,不用再打工。當然,也有人夢想著通過買彩票實現一夜暴富。說到這裡,很多人可能就會問到底多少錢才算財務自由?100萬還是1000萬,甚至是上億?生活在不同的城市,就會有不同的標準。但如果你有100萬存銀行能不能做到不用上班呢?答案是可以的,但首先你有自己的一套房。
  • 有100萬元閒錢,存在郵政銀行2年期,到期後可以賺多少利息
    我說的交通銀行3年期大額存單存款利率,是根據交通銀行官網公布的存款利率。同一家銀行,不同地區分支行會根據當地存款業務情況而定存款利率,可以在自家銀行官網公布存款利率基礎上稍微上調利率。但是,同一家銀行,不同地區存款利率不會相差太大是肯定的。這期主要分享郵政銀行的2年期存款產品(保本保息),年化利率是多少?
  • 想靠利息生活?銀行員工透露:存款達到這個數,利息等於一份工資
    不知道各位小夥伴有沒有過這種想法,那就是自己沒存款的時候希望自己的存款能達到5萬或者10萬,當達到了這個目標以後又希望能達到15萬或者20萬,甚至是100萬,可以說對於金錢的追求是很難有人能滿足的,畢竟當你沒存款的時候過得生活,也許一個月只需要1000多塊錢就能過,但當你有100萬存款的時候,你一個月也許就要花幾千上萬元,所以不同階段的人對於存款的要求也是不一樣的
  • 1985年借同學40元,30年後還1000元,虧還是賺?有個答案亮了!
    博覽天下   1985年借同學40元,30年後還1000元,虧還是賺?有個答案亮了!   1985年借給同學40元   30年後同學還給我1000元   我是虧了還是賺了?
  • 在銀行有多少存款,一個月才可以賺到8000元利息,什麼概念
    不知道,大家有沒有想過僅憑自己在銀行的存款,一個月就要多賺一份幾千塊錢的收入,而且跟上班的收入差不多?在銀行存款,一個月賺取8000塊錢的利息?這是什麼概念?在銀行存款,一個月利息收益有8000元的,這就意味著你不用上班,你的利息收入已經超過廣州8成的上班族收入。那在銀行存款一個月收益8000元,這得需要多少存款才能賺到這麼多利息呢?一個月賺8000元,意味著一年賺9600元利息。一般在銀行存款都是存3年期,只有辦理3年期固定存款產品,存款年化收益率才超過人民幣貶值速度。
  • 存款等於躺賺!如果想靠存款利息滿足每月開銷,需要存多少錢?
    很多年輕人都喜歡把錢存入各大理財平臺,不過對於老年人來說,他們仍然把銀行作為存款的首選,畢竟銀行存款比較穩定,而且還有很多存款方式可以選擇,總體而言,收益比餘額寶更高。尤其是今年,我們遇到突發事件,在經濟不太景氣的情況下,大家再一次意識到了存款的重要性。
  • 2020年手裡有30萬,存在中國工商銀行,一個月能拿到多少利息?
    如果單純考慮安全性的話,國有銀行的安全性肯定是最高的,而在6家國有銀行當中,中國工商銀行無論從資產規模還是業務排名都是首屈一指的。那麼如果當下手裡有30萬,想存在中國工商銀行,一個月能拿到多少利息呢?說到銀行存款其實有很多種方式,比如活期、定期、大額存單、人民幣理財等,當然不同的存款產品對應的利息是有很大差別的。
  • 在銀行存多少錢以上,會給不一樣的利息呢?
    大家好,我是天下誰能不識君,很高興又和大家見面了,今天我們來聊聊在銀行存多少錢以上,會給不一樣的利息呢?總所周知,每個銀行存款政策不一樣,有的銀行存錢利率高,有的銀行存錢有禮品贈送,有的銀行存錢還有返現,存的多送得多!
  • 如果把5萬元存進銀行,一年後能賺多少錢,怎麼存才能賺更多利息
    昨天有一位朋友問我,今年去銀行存款利率多少?我問他,你打算存幾年,存多少錢?他說就存5萬塊錢一年就可以了,不多!我跟他說,每一家銀行存款利率都不一樣的,一般來說存款期限越長,年化收益率相對來說越高。好了,咱們來聊聊5萬塊錢,應該怎麼存更好?也就是說怎麼存,才能賺取更多利息。