应该是由于浮点型数据在计算机内部存储的原因,1可能存储成0.99999或者是1.00001之类的,int强制转换是只取整数
浮点计算有误差,int()是向零取整,即0.9999999用int()取整是0。如果你想要四舍五入取整的结果用std::round()std::floor(): 向下取整std::ceil(): 向上取整std::round(): 四舍五入取整int(): 向零取整
int()
std::round()
std::floor()
std::ceil()