今天突然发现浮点数比较的诡异
看下面的代码

你觉得他 输出多少呢?我觉得大部分人觉得他是1.00000000吧,但结果是这样。

这说明,它计算a>b时是先把float型转换为int型比较,但是你输出浮点型,而int不能直接转化为float型,所以出现错误。加上强制转换就没问题了。
本文探讨了浮点数比较时的常见误区,通过一个代码示例揭示了将浮点数与整数直接比较可能导致的意外结果。文章指出,这种情况下,计算机可能会先将浮点数转换为整数进行比较,再输出时又尝试将其转回浮点数,从而造成显示上的错误。正确的做法是使用强制类型转换。
今天突然发现浮点数比较的诡异
看下面的代码

你觉得他 输出多少呢?我觉得大部分人觉得他是1.00000000吧,但结果是这样。

这说明,它计算a>b时是先把float型转换为int型比较,但是你输出浮点型,而int不能直接转化为float型,所以出现错误。加上强制转换就没问题了。
1293
614

被折叠的 条评论
为什么被折叠?