用Float類型接收前臺傳遞String類型精度異常

項目裏很多使用涉及金額錢的輸入框,oralce數據庫一般設置成number(18,2)就能滿足大多數項目存儲需求
但是後臺使用Float類型接收的時候,會出現精度錯誤,例如前臺錄入的是29999999,後臺用Float接收後,自動+1,轉成30000000,而且Float自動轉換使用了科學計數法,導致精度錯誤了,正常要求個位數輸入多少就傳遞多少纔對,小數點一般四捨五入沒問題。
解決辦法,後臺接收的時候使用BigDecimal類型接收,保存的時候直接保存就能正常入庫,精度不丟失,涉及到計算累加時候也使用BigDecimal.add方法

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