当前位置:编程学习 > VB >>

发现一个很有意思的问题

Int(65.1*100)的值等于多少?
答案是6509,为什么呢? 数据精度的问题。不足为奇 确实挺奇怪,期待高人解释一下 1、计算机浮点数计算存在误差这应该是常识。
2、int取整时存在四舍五入的问题:
   Debug.Print Int(65.1 * 100 + 0.5)
3、可以使用定点数计算:
   Debug.Print Int(65.1@ * 100)
   Debug.Print Int(ccur(65.1) * 100)

我也觉得很奇怪
见怪不怪 类型的关系把 看监看 用10进制小数不能精确表示某些三进制小数0.1(3)=0.33333333333……(10)
同理,用二进制小数也不能精确表示某些10进制小数。
补充:VB ,  VBA
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,