Math类四个常用方法辨析,floor、ceil、round、rint

1.Math.floor

floor,英文原意:地板。
Math.floor 函数是求一个浮点数的地板,就是 向下 求一个最接近它的整数,它的
值肯定会小于或等于这个浮点数。

再看下面的例子的时候,脑中想象一个竖着的数轴,负数在下,正数在上。这样对于向上取整和向下取整的说法,可能会更容易理解。

例子:

        System.out.println("Math.floor(-1.1): " + Math.floor(-1.1));
        System.out.println("Math.floor(-1.5): " + Math.floor(-1.5));
        System.out.println("Math.floor(-1.6): " + Math.floor(-1.6));
        System.out.println("Math.floor(0.1): " + Math.floor(0.1));
        System.out.println("Math.floor(0.5): " + Math.floor(0.5));
        System.out.println("Math.floor(0.6): " + Math.floor(0.6));
        System.out.println("Math.floor(1.1): " + Math.floor(1.1));
        System.out.println("Math.floor(11.5): " + Math.floor(11.5));
        System.out.println("Math.floor(15.7): " + Math.floor(15.7));

结果为:
Math.floor(-1.1): -2.0
Math.floor(-1.5): -2.0
Math.floor(-1.6): -2.0
Math.floor(0.1): 0.0
Math.floor(0.5): 0.0
Math.floor(0.6): 0.0
Math.floor(1.1): 1.0
Math.floor(11.5): 11.0
Math.floor(15.7): 15.0

2.Math.ceil

ceil,英文原意:天花板。
Math.ceil 函数执行的是 向上 取接近的整数,它返回的肯定会大于或等于函数参数。
例子:

        System.out.println("Math.ceil(-1.1): " + Math.ceil(-1.1));
        System.out.println("Math.ceil(-1.5): " + Math.ceil(-1.5));
        System.out.println("Math.ceil(-1.6): " + Math.ceil(-1.6));
        System.out.println("Math.ceil(0.1): " + Math.ceil(0.1));
        System.out.println("Math.ceil(0.5): " + Math.ceil(0.5));
        System.out.println("Math.ceil(0.6): " + Math.ceil(0.6));
        System.out.println("Math.ceil(1.1): " + Math.ceil(1.1));
        System.out.println("Math.ceil(1.5): " + Math.ceil(1.5));
        System.out.println("Math.ceil(1.6): " + Math.ceil(1.6));

结果为:
Math.ceil(-1.1): -1.0
Math.ceil(-1.5): -1.0
Math.ceil(-1.6): -1.0
Math.ceil(0.1): 1.0
Math.ceil(0.5): 1.0
Math.ceil(0.6): 1.0
Math.ceil(1.1): 2.0
Math.ceil(1.5): 2.0
Math.ceil(1.6): 2.0

3.Math.rint

Math.rint 函数返回最接近参数的整数,如果有2个数同样接近,则会返回偶数的那个。

        System.out.println("Math.rint(-1.1): " + Math.rint(-1.1));
        System.out.println("Math.rint(-1.5): " + Math.rint(-1.5));
        System.out.println("Math.rint(-1.6): " + Math.rint(-1.6));
        System.out.println("Math.rint(0.1): " + Math.rint(0.1));
        System.out.println("Math.rint(0.5): " + Math.rint(0.5));
        System.out.println("Math.rint(0.6): " + Math.rint(0.6));
        System.out.println("Math.rint(1.1): " + Math.rint(1.1));
        System.out.println("Math.rint(1.5): " + Math.rint(1.5));
        System.out.println("Math.rint(1.6): " + Math.rint(1.6));

结果为:
Math.rint(-1.1): -1.0
Math.rint(-1.5): -2.0
Math.rint(-1.6): -2.0
Math.rint(0.1): 0.0
Math.rint(0.5): 0.0
Math.rint(0.6): 1.0
Math.rint(1.1): 1.0
Math.rint(1.5): 2.0
Math.rint(1.6): 2.0

4.Math.round

round 方法,我们通常会说这个方法表示”四舍五入”,但是当参数为负数时,就不太好理解。
所以,以源码的计算方式来理解会比较准确。

源码大意:

 Math.round(x) = Math.floor(x + 0.5)

即将原来的数字加上0.5后再向下取整。
例子:

        System.out.println("Math.round(-1.1): " + Math.round(-1.1));
        System.out.println("Math.round(-1.5): " + Math.round(-1.5));
        System.out.println("Math.round(-1.6): " + Math.round(-1.6));
        System.out.println("Math.round(0.1): " + Math.round(0.1));
        System.out.println("Math.round(0.5): " + Math.round(0.5));
        System.out.println("Math.round(0.6): " + Math.round(0.6));
        System.out.println("Math.round(1.1): " + Math.round(1.1));
        System.out.println("Math.round(1.5): " + Math.round(1.5));
        System.out.println("Math.round(1.6): " + Math.round(1.6));

结果为:
Math.round(-1.1): -1
Math.round(-1.5): -1
Math.round(-1.6): -2
Math.round(0.1): 0
Math.round(0.5): 1
Math.round(0.6): 1
Math.round(1.1): 1
Math.round(1.5): 2
Math.round(1.6): 2

在数学计算中,`abs`、`ceil`、`floor` 和 `round` 这四个函数是非常常用的工具,主要用于对数值进行特定的取整或绝对值运算。以下是这四个函数的具体介绍: ### 1. abs 函数 (Absolute Value) **功能**: 返回数字的绝对值。 无论是正数还是负数,经过此函数处理之后都将变成正值。 **例子**: ```cpp #include <cmath> double x = -5.6; double y = abs(x); //y is now 5.6 ``` ### 2. ceil 函数 (Ceiling Function) **功能**: 向上舍入,返回大于等于指定浮点数的第一个整数。 换句话说就是把一个小数无条件地进位至下一个较高的整数。 **例子**: ```cpp #include <cmath> double z = 4.3; z = ceil(z); //z becomes 5.0 ``` ### 3. floor 函数(Flooring Function) **功能**:向下舍入,即返回小于等于该实数的最大整数。 这意味着任何小数都会直接丢弃掉后面的非零部分仅保留前面的完整数值作为结果反馈出来。 **例子**: ```cpp #include <cmath> double w = 9.876; w = floor(w); //w equals to 9.0 now. ``` ### 4. round 函数(Rounding Numbers To Nearest Integer) **功能**: 四舍五入法将输入的数据调整成最接近它的那个完整的长型数据形式呈现给用户看懂就好啦~ 注意:这里的"四捨五入", 如果刚好处于两个相邻整数中间(如X.YY其中YY=.5), 那么它会朝向离其较近的那个偶数方向靠拢哦! **例子**: ```cpp #include <cmath> float t = 2.5f; t = round(t); //t turns into 2.0 because rounding towards even number when exactly halfway between two integers. float u = 3.5f; u = round(u); //u changes to be 4.0 since it's closer to four rather than three due normal rule applied above mentioned paragraph . ``` 以上就是在C语言系列里头有关于一些基础却极其重要的几种算术转换相关的函式内容解析了呢! 希望可以帮助到正在学习阶段的朋友理解清楚每个概念背后的运作逻辑~
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值