Groovy 會自動把10.5 這樣的的小數值自動裝箱(Autobox)成java.math.BigDecimal 而非你想當然的java.lang.Float或java.lang.Double類型。 為什麼要這樣舉個大多數Java開發者都沒有意識到的一個慘通例子: 寫一個簡短的Java應用,循環10 次,每次都加上0.1。 你最終會得到0.99999或1.000001,這要看你是存成Double還是Float。 使用BigDecimal,你將會每次都得到1.0,和預期的一模一樣。 這就是(The Principle of Least Surprise)。
文章標籤
全站熱搜
