整数除法舍入方式:
整数相除涉及到舍入的问题,有这么四种舍入方式:向偶数舍入,向零舍入,向下舍入,向上舍入。
向偶数舍入:(也叫作最接近的值舍入) 值应该舍入到距离自己最近的数字。当值处于中间的时候,应该让最低有效位保持偶数。所以,按照这种策略,1.4应该舍入到1,1.6应该舍入到2,只有在x.5的时候要考虑个位数保持偶数,比如1.5应该舍入到2, 2.5也应该舍入到2,因为2是偶数。
向零舍入: 很好理解,向靠近零的整数舍入。
向下舍入:也就是我们常说的向下取整 $\lfloor x \rfloor $
向上舍入:也就是向上取整 $\lceil x \rceil$
Java及c语言中的除法:
Java以及c语言当中的整数除法采用的是向0舍入的方式:
public classdiv {public static voidmain(String[] args){int a = 3/2; //float除法应该为 1.5
int b = 5/3; //float除法应该为 1.666
int c = 5 /4; //~~~~~~~~~~~~ 1.25
int d = -3/2; //~~~~~~~~~~~~ -1.5
int e = -5/3; //~~~~~~~~~~~~~~ -1.66
int f = -5/4; //~~~~~~~~~~~~~~ -1.25
System.out.printf("a is %d\nb is %d\nc is %d\n" +
"d is %d\ne is %d\nf is %d\n",
a, b,c,d,e,f);
}
}
输出结果为:
a is 1b is1c is1d is-1e is-1f is-1
Python中的除法:
Python当中 '/'表示float除法, '//'是整数除法,遵循的原则是向下取整
a = 3//2 #1.5
b = 5//3 #1.66
c = 5//4 #1.25
d= -3//2 #-1.5
e = -5//3 #-1.66
f = -5//4 #-1.25
print(a,b,c)print(d,e,f)
结果为:
1 1 1
-2 -2 -2
'//'这种运算 可以使用 int(a//b)来转化为向0取整。