整数除法舍入方式:
整数相除涉及到舍入的问题,有这么四种舍入方式:向偶数舍入,向零舍入,向下舍入,向上舍入。
向偶数舍入:(也叫作最接近的值舍入) 值应该舍入到距离自己最近的数字。当值处于中间的时候,应该让最低有效位保持偶数。所以,按照这种策略,1.4应该舍入到1,1.6应该舍入到2,只有在x.5的时候要考虑个位数保持偶数,比如1.5应该舍入到2, 2.5也应该舍入到2,因为2是偶数。
向零舍入: 很好理解,向靠近零的整数舍入。
向下舍入:也就是我们常说的向下取整 $lfloor x floor $
向上舍入:也就是向上取整 $lceil x ceil$
Java及c语言中的除法:
Java以及c语言当中的整数除法采用的是向0舍入的方式:
public class div { public static void main(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 b is %d c is %d " + "d is %d e is %d f is %d ", a, b,c,d,e,f); } }
输出结果为:
a is 1 b is 1 c is 1 d is -1 e is -1 f 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取整。