笨蛋!連0.2這么簡單的數字都搞不定!你被炒了!








后記:
計算機的本質決定了它是一個二進制的世界,人類熟悉的十進制數字需要轉行成二進制才能被計算機處理。但是這個轉化的過程卻會遇到問題。從漫畫中可以看出十進制整數都能精確地轉化為二進制表示,但是十進制小數卻并不一定。你可以用你熟悉的編程語言如Java、Python, JavaScript快速地重現這一現象。
對于工程計算和科學計算,一個非常近似的二進制小數是可以滿足要求的,但是在商業計算尤其是金融領域,必須要精確地表示,精確地計算,這個時候就不能直接使用float,double等類型了,需要用一個工具類如BigDecimal來進行處理。
值得注意的是,國際上對浮點數的存儲制定了規范,即IEEE 754, 這個存儲格式略為復雜,但其不能精確表示十進制小數的本質是不變的。
如需轉載,請通過作者微信公眾號coderising獲取授權。