随笔-60  评论-98  文章-0  trackbacks-0
float fTmp = 0.51
int iTmp = fTmp;

iTmp = ??

答案是0,相当于Floor了。

0.99也是0,但是0.9999999就是1,这是因为二进制表示十进制小数会有精度损失。

Ceil也不对,0.1也会+1。

想要四舍五入取整,选择RoundTo(fTmp, 0)。
posted on 2008-07-30 17:58 创建更好的解决方案 阅读(308) 评论(1)  编辑 收藏 引用 所属分类: C++专栏

评论:
# re: 数值转换的想当然 2008-08-18 11:08 | 创建更好的解决方案
文中有误:0.9999999999999996才会强转出1来  回复  更多评论
  

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理