c++,这两个int(b)结果为啥不一样?

img

img


这两个int(b)的结果为啥不一样呢,什么原因,又没有人知道呢

应该是由于浮点型数据在计算机内部存储的原因,1可能存储成0.99999或者是1.00001之类的,int强制转换是只取整数

浮点计算有误差,int()是向零取整,即0.9999999用int()取整是0。如果你想要四舍五入取整的结果用std::round()
std::floor(): 向下取整
std::ceil(): 向上取整
std::round(): 四舍五入取整
int(): 向零取整