【简介】
摘要: 既然float不能表示所有的int,那为什么在类型转换时C++将int转换成float? 问题: 代码如下: int i = 23; float f = 3.14; if (i == f) // 执行某段代码 编译器会将i转换成float类型,然后比较这两个float的大小,但是float能够表示所有的int吗?为什么没有将int和float转换成double类型进行比较呢? 回答: 在整型数的演变中,当int变成unsigned时,会丢掉负数部分(有趣的是,这样的话,0u < -1就是对的了)。