10%(-3)为什么余1呢?
10 % (-3) = -2
取余数运算:https://baike.baidu.com/item/%E4%BD%99%E6%95%B0/6180737?fr=aladdin
a mod b = c 表示 整数a除以整数b所得余数为c。
余数的计算公式:c = a - ⌊ a/b⌋ * b
其中,⌊ ⌋为向下取整运算符,向下取整运算称为Floor,用数学符号⌊ ⌋表示。
10 / (-3) = -3.333...333
-3.333...333向下取整为-4,带入取余公式:
c = a - ⌊ a/b⌋ * b ===》 c = 10 - (-4) * (-3) = -2。
double x=10;
double y= -3;
System.out.println(x - Math.floor(x/y)*y);//取余运算公式
输出结果为:-2.0
10%-3就是10对-3求模运算,求模运算最终的结果只与被除数有关,这里是10,是对-3求模,结果是10 / (-3)= (-3).......1 ,%是取余运算,所以结果是1