课程
/后端开发
/Java
/Java入门第一季(IDEA工具)升级版
int m = 5;
int n = 7;
double x = (m*8/(n+2))%m;
为什么运行结果不是:4.44444 而是:4.0???
2016-03-22
源自:Java入门第一季(IDEA工具)升级版 3-8
正在回答
4.444是(m*8/(n+2))这个式子算出来的,%是指求余的算术运算符,而4.444%m也就是说4.444除以5后所取的余数,余数只有整数,同时你前面是用了double类型,所以显示是4.0。
我的问题就错着呢,刚发现错误,算错了
前面的乱来。。。取余可以取浮点型,还有整除是什么鬼。。。
m,n都是int,返回int类型,结果相当于舍掉小数点后面是4,4赋值给double类型的x,自动转换成4.0。。
(byte char short)这三个运算返回int型, int<long< float<double 这几个运算结果是往后看。。。
谁抢了我的好奇宝宝
充电_ 回复 谁抢了我的好奇宝宝
因为类型不同,int类型相加,默认结果的类型也是int。所以从int转换成double就会出现这样的结果。
%是整除
double 类型的是浮点型的,但是取余取得的是整数类型。
举报
0基础萌新入门第一课,从Java环境搭建、工具使用、基础语法开始
4 回答double取模结果为什么是4.0而不是4.4
3 回答double avg=sum/4.0;为什么这个结果是26.25,而不是26.0?
3 回答double avg=sum/4.0;结果是26.25?
3 回答double x=40/9;为什么运算结果是4.0啊
1 回答为什么把int换成double就是327了。