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/zh-hant/n/368498.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
SOODR的頭像SOODR
上一篇 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

發表回復

登錄後才能評論