Java 基础教程

Java 面向对象

Java 高级教程

Java 笔记

Java FAQ

java bigdecimal取整


在 Java 中,要对 BigDecimal 进行取整操作,有几种常见的方式。下面将详细介绍每种方式的步骤和示例代码,并提供可能需要的第三方库的依赖坐标。

方式一:使用 setScale 方法

使用 setScale 方法,将 BigDecimal 的小数部分截断,得到一个新的 BigDecimal 对象。

示例代码:

import java.math.BigDecimal;
import java.math.RoundingMode;

public class BigDecimalRounding {
    public static void main(String[] args) {
        BigDecimal value = new BigDecimal("123.456");
        BigDecimal roundedValue = value.setScale(0, RoundingMode.DOWN); // 0表示保留0位小数,RoundingMode.DOWN表示向下取整
        System.out.println(roundedValue); // 输出: 123
    }
}

方式二:使用 intValue 方法

使用 intValue 方法将 BigDecimal 转换为 int 类型,会自动进行向下取整操作。

示例代码:

import java.math.BigDecimal;

public class BigDecimalRounding {
    public static void main(String[] args) {
        BigDecimal value = new BigDecimal("123.456");
        int intValue = value.intValue();
        System.out.println(intValue); // 输出: 123
    }
}

方式三:使用 stripTrailingZeros 方法

使用 stripTrailingZeros 方法移除 BigDecimal 的小数部分的零,然后将结果转换为普通的 BigDecimal。

示例代码:

import java.math.BigDecimal;

public class BigDecimalRounding {
    public static void main(String[] args) {
        BigDecimal value = new BigDecimal("123.45600");
        BigDecimal strippedValue = value.stripTrailingZeros();
        System.out.println(strippedValue); // 输出: 123.456
    }
}

如果你需要使用第三方库来进行更高级的取整操作,可以考虑使用 Apache Commons Math 库。以下是 Maven 和 Gradle 的依赖坐标以及示例代码:

使用 Apache Commons Math 库

Maven 依赖坐标:

<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-math3</artifactId>
    <version>3.6.1</version>
</dependency>

Gradle 依赖坐标:

implementation 'org.apache.commons:commons-math3:3.6.1'

示例代码:

import org.apache.commons.math3.util.Precision;

public class BigDecimalRounding {
    public static void main(String[] args) {
        double value = 123.456;
        double roundedValue = Precision.round(value, 0); // 0表示保留0位小数
        System.out.println(roundedValue); // 输出: 123.0
    }
}

以上是在 Java 中进行 BigDecimal 取整的几种常见方式,你可以根据具体需求选择合适的方法,如果需要更复杂的取整操作,可以考虑使用第三方库如 Apache Commons Math。