检查变量是否为整数

时间:2020-03-03 17:50:46

标签: c++

所以基本上我是将用户输入的两个数字相除并将其存储在变量中。该变量是时间,因此它既不能为负,也不能为任何小数部分。它必须是+ ve整数,我必须检查它。

int main()
{
    int x1,v1,x2,v2;
    cin>>x1>>v1>>x2>>v2;
    int p=x1-x2;
    int q=v2-v1;
    float t=p/q;
    int x=floor(t);
    int y=ceil(t);
    int temp;
    if(x==y)
     temp=1; 
    if(t>0 && temp==1)
    cout<<"YES";
    else
    cout<<"NO";
}

但是即使对于2341/124这样的数字,它也会返回“ YES”。

1 个答案:

答案 0 :(得分:3)

p/q不会产生float

pq都是整数,因此执行整数除法,结果是数学答案的“四舍五入”版本,就像另一个int

然后将这个新整数分配给float没关系。

为避免这种情况,请在除法之前将一侧投射到float ,或使用std::div

一般来说,持续时间可以是负数,也可以是非整数。

相关问题