回答
我不知道我理解你的問題。在CLisp中,round
取整爲最接近的整數(除非指定除數)。與33.6
最接近的整數是34
,所以這個位是正確的。
而且,由於round
返回商和剩餘部分,它給34
,用的-0.4
剩餘部分。該位的主要是正確,所以我懷疑你想知道爲什麼它只是「主要」。
它不是正是-0.4
幾乎可以肯定是由於浮點數的精度有限的原因。計算(貌似精確的)浮點數和整數之間的差異的結果可能是驚人的:
CL-USER> (- 23.6 24) -0.39999962
你會在爲一個完美的世界將要返回-0.4
但事實並非如此,原因上文提到的。
'CL-USER>( - 23.6 24) -0.39999962' –
欲konw的datials低電平 –
計算2之間浮動號碼:CL-USER>(+ 25.2 2.2) 27.400002 –
- 1. CCL爲什麼不能加載hunchentoot?
- 2. 棘輪組件爲什麼不能正確渲染
- 3. 爲什麼wszName不正確?
- 4. 爲什麼UIGraphicsGetCurrentContext不正確?
- 5. 爲什麼不正確?
- 6. navigator.cpuClass爲什麼不正確?
- 7. parseInt輪不正確
- 8. NSRange:不正確的行爲。爲什麼?
- 9. 爲什麼行爲不正確
- 10. 輪盤賭程序不會識別正確的猜測。爲什麼?
- 11. 爲什麼pytz偏移量不正確?
- 12. 爲什麼ArrayList不能正確打印?
- 13. TTimer爲什麼不能正確工作?
- 14. 貨幣格式爲什麼不正確?
- 15. 爲什麼ProgressDialog不能正確顯示?
- 16. 爲什麼不正確更新MvxStandardTableViewSource SelectedItem?
- 17. ,爲什麼不正確運行?
- 18. 爲什麼GoogleAuthentication後User.Identity.IsAuthenticated不正確?
- 19. 爲什麼UISearchBar顯示不正確?
- 20. 爲什麼時間計算不正確?
- 21. 這個摺疊爲什麼不正確?
- 22. 爲什麼ColorBox加載不正確?
- 23. 這些座標爲什麼不正確?
- 24. 爲什麼結構大小不正確
- 25. 爲什麼DateTime不能正確拆箱?
- 26. 爲什麼不能正確加載?
- 27. 爲什麼這個@Override不正確?
- 28. 爲什麼這不正確同步?
- 29. 爲什麼計算不正確?
- 30. 爲什麼不能正確轉換?
另請參閱[*每個計算機科學家應瞭解的浮點運算*,作者:David Goldberg](http://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html)。 –
另請參閱[在LISP中浮點的神祕問題 - 時間軸生成](http://stackoverflow.com/q/6225211/1281433),[在SBCL中的exp是錯誤的?](http://stackoverflow.com/q/4771346/1281433),[浮點精度錯誤](http://stackoverflow.com/q/20490115/1281433),[(球拍/計劃)減法產生的結果令人難以置信的小幅度](http:// stackoverflow。 com/q/13693041/1281433),[爲什麼在Common Lisp中,當我運行參數爲1的函數「acos」時,答案是錯誤的?](http://stackoverflow.com/q/17424545/1281433 ),... –