回答
我不知道我理解你的问题。在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 ),... –