2个回答
2017-08-21 · 百度知道合伙人官方认证企业
育知同创教育
1【专注:Python+人工智能|Java大数据|HTML5培训】 2【免费提供名师直播课堂、公开课及视频教程】 3【地址:北京市昌平区三旗百汇物美大卖场2层,微信公众号:yuzhitc】
向TA提问
关注
展开全部
两个int的值作除法运算,得到的为int,而且,得到的值是直接去掉小数部分。
假如:
int i=1;j=3;i/j==0 返回的为true
同理,i/3==0 1/3==0 1/j==0都是返回为true
如果,double res=i/j 其返回的结果,不会是0.333...,而是0
如果你要得到为0.333...,则需要 res=((double)i)/j;
而你的
fReuslt=(int)((double)num1/num2)
则会先执行num1/num2,如果num1和num2都int,都到的结果最终会是int,这里假设num1=6,num2=5,则num1/num2==1 为true,而不是1.2,那么,再执行(double)res,这里的res就是num1/num2,故res=1,所以double之后仍然为1,而不是1.2
假如:
int i=1;j=3;i/j==0 返回的为true
同理,i/3==0 1/3==0 1/j==0都是返回为true
如果,double res=i/j 其返回的结果,不会是0.333...,而是0
如果你要得到为0.333...,则需要 res=((double)i)/j;
而你的
fReuslt=(int)((double)num1/num2)
则会先执行num1/num2,如果num1和num2都int,都到的结果最终会是int,这里假设num1=6,num2=5,则num1/num2==1 为true,而不是1.2,那么,再执行(double)res,这里的res就是num1/num2,故res=1,所以double之后仍然为1,而不是1.2
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询