有什麼辦法可以解決這個問題嗎?爲什麼Chrome瀏覽器將1.3 * 1.3評估爲1.6900000000000002?
回答
因爲浮點以二進制表示,而不是十進制。一些十進制數字不會精確表示。不幸的是,由於Javascript只有一個Number類,所以它不是一個很好的工具。其他語言有精心設計的十進制庫,以避免這種錯誤。您將不得不接受1美分的錯誤,實施服務器端的解決方案,或者努力解決這個問題。
參見:
JavaScript floating point number problem
Binary representation of floating point number php/java (Server side)
您能否以浮點格式向我提供此1.3的二進制表示形式。也許不是像JavaScript一樣,但也許在某種程度上,某些編程語言可以這樣做,以便我可以看到在二進制表示中出現此問題的位置。 – 2014-10-16 15:46:01
請參閱:[如何獲取二進制表示的浮點數](http://stackoverflow.com/questions/4729526/how-to-get-binary-representation-of-floatingpoint -number-in-php) – 2014-10-16 17:38:03
但是這個線程與php和java代碼有關。 – 2014-10-16 17:44:00
因爲javascript中的浮動(讀取:雙打)不是很準確,您可以將數字四捨五入以使用更少的小數來隱藏問題。一個非常黑客的做法是這樣做:
var num = 1.3*1.3;
Math.round(num * 100)/100;
- 1. 爲什麼Chrome瀏覽器比Safari瀏覽器更快?
- 2. 爲什麼全局函數在角1.3
- 3. 爲什麼_ = $ = + [],++ _ +''+ $評估爲10
- 4. 爲什麼Maven試圖將我的代碼編譯爲-source 1.3?
- 5. 爲什麼iPhone將Google Chrome視爲Safari還將Mozilla Firefox視爲Safari瀏覽器?
- 6. AssetCompress爲CakePHP的1.3
- 7. 爲什麼在量角器中評估()?
- 8. 爲什麼在加載和評估`lib.js`之前,瀏覽器中的以下塊?
- 9. Chrome認爲它是IE瀏覽器,並且正在評估條件式
- 10. 爲什麼ActivationUri使用Chrome瀏覽器爲空?
- 11. 爲什麼`as.logical(2)`評估爲`TRUE`?
- 12. 爲什麼如果(無)評估爲真?
- 13. 爲什麼「」<{}評估爲真?
- 14. 爲什麼strtof總是評估爲HUGE_VAL?
- 15. 爲什麼string> int評估爲True?
- 16. 爲什麼+()=> {}評估爲NaN?
- 17. 爲什麼Ruby包含?評估爲零?
- 18. 爲什麼a =評估爲零?
- 19. 爲什麼在VB.Net中評估爲false?
- 20. 爲什麼list.append評估爲false?
- 21. 爲什麼Chrome瀏覽器不像IE那麼流暢?
- 22. 防止瀏覽器從評估%2F
- 23. 將jQueryMobile 1.4按鈕設爲1.3
- 24. 將playframework版本1.2.7設置爲1.3
- 25. CakePHP的1.3 JsHelper爲AjaxHelper
- 26. CakePHP 1.3替代SoftDeletable行爲?
- 27. 窗口可以評估chrome下的文件,爲什麼?
- 28. 爲什麼javascript評論下載到瀏覽器?
- 29. 爲什麼瀏覽器正在評論我的PHP代碼
- 30. Can可以在瀏覽器中打開SAP HANA Vora Manager 1.3
因爲如何JavaScript的花車被定義的。這是所有的瀏覽器,因爲它是一個JavaScript標準。 – devqon 2014-10-16 15:11:45
1.3不能將四捨五入轉換爲二進制數字系統 – 2014-10-16 15:13:12
您有什麼情況會讓您擔心這個值? – musefan 2014-10-16 15:16:56