c++遇到的bug
第五题我本来想用longlong的但是出现了error听说是v6不承认longlong但是用了long出现的百分数是0呢?!!...
第五题
我本来想用long long 的但是出现了error 听说是v6不承认long long 但是用了long 出现的百分数是0呢?!! 展开
我本来想用long long 的但是出现了error 听说是v6不承认long long 但是用了long 出现的百分数是0呢?!! 展开
3个回答
展开全部
问题出在
float F=UP/WP;
这句上面。
c++中,变量的运算是与类型有关的。整数的乘除法,得不到小数,比如:
int a=1;
int b=3;
a/b的结果不是0.33333...而是0。
long神马的也一样。
float F=UP/WP;这句到底发生了什么?
1首先计算UP/WP,会得到0
2将计算得到的“0”转化为float型的数字,再赋值给F。
如果你想精确的计算,那么建议你这样:
float F=(float)UP/WP;
这样的话,会发生:
1首先将UP转化为float型的变量
2计算UP/WP时,因为WP是整型,根据规则,WP会被转化为float型
3计算UP/WP(这时两个变量都是float)
4将计算结果赋值给F
float F=UP/WP;
这句上面。
c++中,变量的运算是与类型有关的。整数的乘除法,得不到小数,比如:
int a=1;
int b=3;
a/b的结果不是0.33333...而是0。
long神马的也一样。
float F=UP/WP;这句到底发生了什么?
1首先计算UP/WP,会得到0
2将计算得到的“0”转化为float型的数字,再赋值给F。
如果你想精确的计算,那么建议你这样:
float F=(float)UP/WP;
这样的话,会发生:
1首先将UP转化为float型的变量
2计算UP/WP时,因为WP是整型,根据规则,WP会被转化为float型
3计算UP/WP(这时两个变量都是float)
4将计算结果赋值给F
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询