八神庵技能表电脑:[20分]问个关于java算术运算符的问题..

来源:百度文库 编辑:高校问答 时间:2024/04/29 09:12:19
int x=42;
double y=42.25;
....
为什么后来println的时候
....
system.out.println("x mod y =" + x%y);

输出的x mod y=42.0
我的问题是为什么42.00%42.25 得出的是42.0 而不是42.00

%是求余运算,42.0 % 42.5 当然是余42.0了。
int 与 double 运算会转换成double.
system.out.println("x mod y="+int(x%y));
这样就输出42了。

求余的时候,在java中默认前面的数作为基数,后面的作为因子,因此,我们一般习惯把大数放前面。此处和类型无关。

int 和 double 运算,首先全部转换成 double, 不够除,所以 x%y = x

42.0 % 42.5 的结果难道不是 42.0 吗?