Java中的取整方法

这篇博客详细介绍了Java中Math类的四个取整方法:ceil、floor、rint和round。通过实例代码展示了它们在处理不同数值时的行为,特别强调了rint方法并不是四舍五入,而是更倾向于偶数方向取整。

在Java中,Math类有四个取整方法

方法 描述
ceil(x) x向上取整为它最接近的整数,以双精度值返回
floor(x) x向下取整为它最接近的整数,以双精度值返回
rint(x) x取整为它最接近的整数。如果x与两个整数的距离相等,偶数的整数作为一个双精度值返回
round(x) 如果x是单精度数,返回(int)Math.floor(x+0.5);如果x是双精度数,返回(long)Math.floor(x+0.5) ps:可以看成是四舍五入

这里注意一下rint不是四舍五入,比如4.5的时候,rint(4.5)=4.0,而rint(3.5)也为4.0

最后上代码演示:

public class test {
   
   
    public static void main(String[] args) {
   
   
    
        System.out.println(Math.ceil(2.1)); //3.0
        System.out.println(Math.ceil(2.0))
### Java取整方法的详细介绍 Java 提供了多种取整方法,主要集中在 `Math` 类中。这些方法包括 `Math.floor()`、`Math.ceil()` 和 `Math.round()`,每种方法的功能和使用场景有所不同。 #### 1. Math.floor() `Math.floor()` 方法用于向下取整,即将小数部分直接舍弃,返回小于或等于参数的最大整数值。其返回值类型为 `double`。 示例代码如下: ```java System.out.println(Math.floor(3.14)); // 输出: 3.0 System.out.println(Math.floor(-3.14)); // 输出: -4.0 ``` 负数处理时,`Math.floor()` 向下趋近于负无穷大[^3]。 #### 2. Math.ceil() `Math.ceil()` 方法用于向上取整,即将小数部分忽略,并将整数部分加 1(如果存在小数部分)。其返回值类型为 `double`。 示例代码如下: ```java System.out.println(Math.ceil(3.14)); // 输出: 4.0 System.out.println(Math.ceil(-3.14)); // 输出: -3.0 ``` 负数处理时,`Math.ceil()` 向上趋近于正无穷大[^4]。 #### 3. Math.round() `Math.round()` 方法用于四舍五入取整。对于正数和负数,遵循标准的四舍五入规则。其返回值类型取决于输入参数:如果是 `float` 类型,则返回 `int`;如果是 `double` 类型,则返回 `long`。 示例代码如下: ```java System.out.println(Math.round(3.5)); // 输出: 4 System.out.println(Math.round(3.4)); // 输出: 3 System.out.println(Math.round(-3.5)); // 输出: -3 System.out.println(Math.round(-3.6)); // 输出: -4 ``` 需要注意的是,`Math.round()` 的实现原理是将参数加上 0.5 后再向下取整[^1]。 --- ### 注意事项 - **返回值类型**:`Math.floor()` 和 `Math.ceil()` 返回 `double` 类型,而 `Math.round()` 返回 `int` 或 `long` 类型。 - **负数处理**:`Math.floor()` 和 `Math.ceil()` 在处理负数时会根据方向进行取整,分别趋近于负无穷大和正无穷大。 - **精度问题**:由于浮点数在计算机中的表示方式,可能会出现精度丢失的问题,因此在实际开发中需要特别注意。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值