問題
javascript java中小數進行算術運算存在精度問題
- 在js中的體現
2.32 * 100 = 231.99999999999997
- 在java中的體現
2.32d * 100 = 231.99999999999997 0.15f * 100 = 15.000001 複製程式碼
說明:js中使用的為雙精度,java 無論單精度或者雙精度都無法避免這個問題
導致問題的原因
ps: 第一篇博文中存在一點計算問題 即8.25,用二進位制的科學計數法表示為:1.00001*2^3,原文作者少寫一個0
解決方案
對於這個現象 只能根據自己的業務需求,來進行靈活的變通
作者在進行商城設計的時候遇到的坑 修改為int 避免了這個問題 資料庫中的欄位也都儲存分為單位 避免精度問題
原文地址 未經作者允許 請勿轉載,謝謝 :)