-3
我在ocaml的運算精度源泉奇怪的問題。看:
# 1.1+.2.2;;
- : float = 3.30000000000000027
它只發生在我做的時候:something.1 + something.2。有人可以試試嗎?
我在ocaml的運算精度源泉奇怪的問題。看:
# 1.1+.2.2;;
- : float = 3.30000000000000027
它只發生在我做的時候:something.1 + something.2。有人可以試試嗎?
這是使用浮點值的現實。儘管1.1用兩位數表示完全以十進制表示,但它需要無限數量的二進制數字來表示該值。由於您正在以有限數量的位存儲1.1二進制文件,因此會發生舍入錯誤。
這並不奇怪,這是浮點數的內在。你是第1000名(棒球場)用戶偶然發現這一點。 – delnan
[每位計算機科學家應瞭解的浮點算術知識](http://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html) –