大家对于“3.5的整数部分”和“√2+1的整数部分”这类问题的教学几乎没有异议,但对于中考中基本不出现的负数的整数部分如“-2.23的整数部分”出现了不同的声音,有老师认为“-2.23的整数部分”是-3,有老师认为是-2,这是因为对取整函数的理解出现了问题。要解决这个问题,答案不在初中,需要高中和大学的知识。首先,明确一个问题:求一个实数整数部分,关键在于取整函数的对应法则。
造成大家混乱的最主要的原因,是因为在互联网上求一个实数的整数,默认取整使用的是int型函数(int是integer简写,而integer是整数的意思),对于一个正数,默认就是不大于该实数的最大整数。但是在一些编程语言中,对于输入的负数,int函数的界定可能会有所不同。一些编程语言会将负数向下取整(如Python),得到一个比输入更小的整数,而另一些编程语言会将负数向上取整(如C++和Java),得到一个比输入更大的整数。由此产生混乱。
笔者查阅了一下中学教材,高中出现了取整函数的定义,也叫高斯取整函数(详见高中教材必修一95页,这是中学教材中提到的唯一一次取整函数),整数部分是指将一个实数向下取整得到的最大整数。也就是说,整数部分是不大于该实数的最大整数,可以记作[x]c++向上取整函数中创网,例如[-3.5]=-4。
事实上取整方法有很多种函数,常用的取整函数包括向0取整(fix函数),向上取整(ceil取整),向下取整函数(floor取整)和四舍五入取整函数(round取整)。
向0取整函数:将一个实数向0方向取整,常用符号”fix(x)”表示,其中”x”是任意实数。例如c++向上取整函数,fix(-3.14)=-3,fix(3.76)=3。
向上取整函数:大于或等于x的最小整数。常用符号”ceil(x)”表示,其中”ceil”是天花板的意思。例如,ceil(-3.14)=-3,ceil(3.76)=4。
向下取整函数:小于或等于x的最小整数。这个也就是高斯取整函数。常用符号”floor(x)”表示,其中”floor”是地板的意思。例如,floor(-3.14)=-4,floor(3.76)=3。
四舍五入取整函数:将一个实数按照一定的精度要求进行四舍五入,得到一个最接近该实数的整数。常用的符号包括”round(x)”表示,其中”round”是大概的意思。例如,round(-3.14)=-3,round(3.76)=4。
取整函数还有很多种,这里只是列了最常用的四种,欢迎大家批评指正。