Bigdecimal四舍五入保留两位小数

一、 Bigdecimal保留两位小数


public static BigDecimal roundToTwoDecimalPlaces(BigDecimal number) {
    return number.setScale(2, RoundingMode.HALF_UP);
}

在使用BigDecimal进行计算时,很常见的一种需求就是要保留小数位数。

来看一个简单的例子,我们需要计算1.111111+2.2222222的结果,再保留两位小数。代码如下:


BigDecimal num1 = new BigDecimal("1.111111");
BigDecimal num2 = new BigDecimal("2.2222222");

BigDecimal result = num1.add(num2);
result = result.setScale(2, RoundingMode.HALF_UP);

System.out.println(result);

运行结果为3.33。这里我们使用setScale方法来将结果保留两位小数。

二、bigdecimal保留4位小数四舍五入


public static BigDecimal roundToFourDecimalPlaces(BigDecimal number) {
    return number.setScale(4, RoundingMode.HALF_UP);
}

除了保留两位小数,有时也需要保留四位小数。但有时候会出现连续四个数字都小于5,就会出现舍弃的情况。这时需要四舍五入。

比如我们需要计算1.1111+2.2222的结果,再保留四位小数:


BigDecimal num1 = new BigDecimal("1.1111");
BigDecimal num2 = new BigDecimal("2.2222");

BigDecimal result = num1.add(num2);
result = result.setScale(4, RoundingMode.HALF_UP);

System.out.println(result);

运行结果为3.3333。

三、BigDecimal两位小数四舍五入后相加


public static BigDecimal addTwoNumbersAndRoundToTwoDecimalPlaces(BigDecimal num1, BigDecimal num2){
    return roundToTwoDecimalPlaces(num1.add(num2));
}

有时候我们需要将两个BigDecimal类型的数字相加后再四舍五入保留两位小数,代码如下:


BigDecimal num1 = new BigDecimal("1.1111");
BigDecimal num2 = new BigDecimal("2.2222");

BigDecimal result = addTwoNumbersAndRoundToTwoDecimalPlaces(num1, num2);

System.out.println(result);

运行结果为3.33。

四、BigDecimal比较大小


public static boolean isGreaterThan(BigDecimal num1, BigDecimal num2){
    return num1.compareTo(num2) > 0;
}

public static boolean isLessThan(BigDecimal num1, BigDecimal num2){
    return num1.compareTo(num2) < 0;
}

public static boolean isEqualTo(BigDecimal num1, BigDecimal num2){
    return num1.compareTo(num2) == 0;
}

在使用BigDecimal进行大小比较时,不能直接使用==或者<、>这样的操作符,应该使用compareTo()方法。来看一个简单的例子:


BigDecimal num1 = new BigDecimal("1.1111");
BigDecimal num2 = new BigDecimal("2.2222");

if(isGreaterThan(num2, num1)){
    System.out.println("num2 is greater than num1.");
}

运行结果为num2 is greater than num1。

五、BigDecimal除法保留两位小数


public static BigDecimal divideToTwoDecimalPlaces(BigDecimal num1, BigDecimal num2){
    BigDecimal result = num1.divide(num2, 2, RoundingMode.HALF_UP);
    return result;
}

在进行BigDecimal类型的除法运算时,我们同样可以使用setScale进行保留小数位数,代码如下


BigDecimal num1 = new BigDecimal("5");
BigDecimal num2 = new BigDecimal("2");

BigDecimal result = num1.divide(num2, 2, RoundingMode.HALF_UP);

System.out.println(result);

结果为2.50。

六、总结

本文介绍了在Java中使用BigDecimal进行四舍五入保留小数位数的方法,包括保留两位小数、四位小数,BigDecimal类型数字相加再保留两位小数,大小比较以及除法运算保留两位小数。

原创文章,作者:SOODR,如若转载,请注明出处:https://www.506064.com/n/368498.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
SOODRSOODR
上一篇 2025-04-12 01:13
下一篇 2025-04-12 01:13

相关推荐

  • Java BigDecimal 精度详解

    一、基础概念 Java BigDecimal 是一个用于高精度计算的类。普通的 double 或 float 类型只能精确表示有限的数字,而对于需要高精度计算的场景,BigDeci…

    编程 2025-04-25
  • BigDecimal的四舍五入取整

    一、BigDecimal介绍 BigDecimal类是Java的一个高精度数值运算类,用于解决二进制实数运算精度丢失的问题。 与其他类型相比,BigDecimal类可以更好地处理非…

    编程 2025-04-23
  • SQL Server保留两位小数详解

    一、数据类型 在SQL Server中,我们需要先了解支持保留两位小数的数据类型有哪些。常见的有DECIMAL、NUMERIC、MONEY和SMALLMONEY。 1、DECIMA…

    编程 2025-04-22
  • 详解Java BigDecimal Divide方法

    一、BigDecimal简介 BigDecimal是Java中一个用于高精度计算的类,它可以精确的表示任意大小和精度的十进制数,并提供各种计算方法。它在金融、科学计算等领域有广泛的…

    编程 2025-04-22
  • 保留两位小数的string转BigDecimal详解

    一、string转BigDecimal的基本方法 在Java中,将string转换为BigDecimal的最基本方法是通过BigDecimal(String val)构造函数进行实…

    编程 2025-04-18
  • BigDecimal.compareTo()方法详解

    一、介绍 BigDecimal是Java中处理精度要求较高的数字类型之一,通过BigDecimal类可以对高精度数字进行精确计算和比较。BigDecimal类中提供了许多方法,其中…

    编程 2025-04-13
  • Python保留小数点后两位

    一、使用内置函数round() Python内置函数round()可以用来保留小数点后指定位数的数字。它的用法如下: num = 12.34566 round_num = roun…

    编程 2025-04-12
  • Python保留一位小数的详解

    一、四舍五入保留一位小数 a = 2.36543 a = round(a, 1) print(a) # 2.4 使用round方法,将原来的数字保留一位小数并四舍五入。 在很多场合…

    编程 2025-04-12
  • 详解BigDecimal的abs方法

    一、简介 BigDecimal是Java中处理高精度数字的类,可以用于保持任意位数的小数。它是不可变的,可以执行基本数学运算,比如加、减、乘、除和取模。而其中的abs方法是取绝对值…

    编程 2025-04-12
  • Bigdecimal保留4位小数详解

    一、基本概念 BigDecimal是Java中一个用来处理高精度数据的类,可以精确表示任意大小且带有符号的定点数。 它通过一组整数来对一个数字进行精确计算,其中一个整数存储数字的值…

    编程 2025-04-02

发表回复

登录后才能评论