編程趣事 100元x100元是否等於10000分x10000分

在軟件開發過程中,接口聯調是實現項目交互無法避免的,在聯調過程中會出現一些數據之間的轉換的問題,例如基本數據類型的轉換、換算單位之間的轉換等等,今天我們就通過金額分與元做切入點,聊一聊換算單位之間的轉換!

前兩天一個同事接到一個任務,A系統和另一個平臺B做聯調,業務是B平臺入參調A系統接口,A系統經過一系列計算等等得出結果後返回給B,然而A系統金額單位是“分”,而B平臺金額單位則是“元”,結果該同事就爲何時將分轉換爲元,陷入了糾結之中。最後實在想不通,就找到了我。

他的疑慮是這樣的:

 100元*100元=10000元   兩個100塊相乘到最後得到的是10000塊

換成分的話  10000分*10000分=100000000分  分再轉換成元100000000分/100=1000000元

這樣算的話數據就平白無故多了兩個0,所以他最終認爲設計到金額相關數據應該在在計算前換算好,我總覺得哪裏有問題,可當時並沒有找到問題出在哪裏,所以當時便默許了他的方案。

這個問題在糾結了兩天之後,終於有了答案,答案就是這小子不光自己鑽牛角尖,連帶着把我也帶進溝裏了。

先追溯到小學二年級的時候,我們學習乘法口訣的時候會有這樣一道題:

一輛車一次可以拉10捆柴,10次可以拉多少捆?答案明顯就是

    10捆*10=100捆

在這道問題中,很明顯,後面的乘數的單位並不是捆,二十次,最終的答案100捆每10次,也就是說10次可以拉100捆

根據這個線索繼續思考,又思考到一個問題

1米*1米=1米?  很顯然答案是否定的,結果是1平方米。無獨有偶,壓力/受力面積=壓強......

最後得出了結論,在計算過程中,不光數據計算,單位也會跟着計算,所以

100元*100元≠10000元     而是   100元*100元=10000平方元

10000分*10000分≠100000000分  而是  10000分*10000分=100000000平方分=10000平方元

在回顧以往的編程時光,金額之間相乘並不存在,它就是個僞命題,例如五險一金、津貼、年終獎、訂單金額等等,跟金額相乘的都只是係數而已,所以這個問題確實是鑽牛角尖了!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章