已知int y;float x=-3;,执行语句y=x%2;后,变量y的值为: 语句本身是错误的 为什么?谢谢

已知inty;floatx=-3;,执行语句y=x%2;后,变量y的值为:语句本身是错误的为什么?谢谢... 已知int y;float x=-3;,执行语句y=x%2;后,变量y的值为: 语句本身是错误的
为什么?谢谢
展开
 我来答
WAT1210
推荐于2018-04-21 · TA获得超过434个赞
知道小有建树答主
回答量:107
采纳率:0%
帮助的人:188万
展开全部
很高兴为你解决问题哈~~作为一个从事软件开发的人员,你这种问题在我曾经也是犯过错误的哈
在数值类型里面有个 优先级关系:一般来讲,占位越长或者精度越高的数据类型的等级越高,
当你做运算的时候,系统会自动的将 低优先级的数自动向高优先级的数转换,称之为 隐式转换
当高级向低级转换的时候,需要强制转换 就是在结果前面加上 (低优先级的数据类型) 就可以了
所以你上面的程序可以这样写:
int y;
float x=-3;
y=(int)x%2; 将float强制转换成 int
或者,
int x=-3;
float y;
y=x%2 此时系统会自动将int结果转换成 float 的哈
有什么不明白的继续追问!
如果你认为我的解答对你有帮助,请采纳为最佳,谢谢~~~
醋溜_排骨
2011-08-07
知道答主
回答量:45
采纳率:0%
帮助的人:32.9万
展开全部
X是float型、y是int型、
把高精度的数据传输给低精度的就是错误的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
胜凭秋o
2011-08-07 · TA获得超过165个赞
知道小有建树答主
回答量:288
采纳率:0%
帮助的人:145万
展开全部
%只能用于整数,而x是浮点数,这是不允许的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
恒昃恒昃
2011-08-07
知道答主
回答量:34
采纳率:0%
帮助的人:24.9万
展开全部
int y;
float x=-3;
y=(int)x%2; 将float强制转换成 int

或者,
int x=-3;
float y;
y=x%2
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式