Java中BigDecimal與基本資料型別間的算術運算


BigDecimal是Java的java.math包中的一個類,它提供任意精度的十進位制算術運算。它允許進行精確的十進位制計算,而不會像浮點運算那樣丟失精度。BigDecimal物件是不可變的,因此對它們的任何算術運算都會建立一個包含運算結果的新物件。

Java中的基本資料型別是該語言中資料的基本構建塊。它們包括int、double、boolean、char等,表示簡單的值,如整數、浮點數和布林值。它們直接儲存在記憶體中,而不是物件,因此比物件具有更低的記憶體開銷。

在這裡,我們將探討如何執行BigDecimal和基本資料型別之間的算術運算。

讓我們開始吧!

例如

加法:值為10.50的BigDecimal物件與值為5的int型別的和是一個值為15.50的BigDecimal物件。

10.50 + 5 = 15.50

演算法

演算法1

步驟1:用一個值初始化BigDecimal物件num1,並用一個值初始化int變數num2。

步驟2:呼叫BigDecimal方法add()、subtract()、multiply()和divide()來執行num1和num2之間的算術運算。

步驟3:每個算術運算的結果都儲存在一個單獨的BigDecimal物件中。

步驟4:使用println方法將結果列印到控制檯。

步驟5:然後程式終止。

演算法2

步驟1:用一個值初始化BigDecimal物件num1,並用一個值初始化int變數num2。

步驟2:在num1上呼叫doubleValue方法將其轉換為double,並在結果double和num2之間執行算術運算。

步驟3:每個算術運算的結果都儲存在一個基本double變數中。

步驟4:使用接受String引數的BigDecimal建構函式將基本double轉換回BigDecimal物件。

步驟5:使用println方法將結果列印到控制檯,程式終止。

語法

doubleValue()方法將BigDecimal物件的值作為double基本型別返回。

下面是它的語法:

double doubleNum1 = num1.doubleValue();

其中,“num1”是一個BigDecimal物件。

多種方法

我們提供了不同的方法來解決這個問題。

  • 使用BigDecimal類方法

  • 使用BigDecimal和基本資料型別之間的轉換

讓我們一一檢視程式及其輸出。

方法1:使用BigDecimal類方法

在這種方法中,初始化BigDecimal物件,然後使用BigDecimal類方法執行BigDecimal和基本資料型別之間的算術運算。

示例

import java.math.BigDecimal;

public class Main {
   public static void main(String[] args) {
      
      // Initialize a BigDecimal object and a primitive int variable
      BigDecimal num1 = new BigDecimal("10.25");
      int num2 = 5;
      
      // Perform arithmetic operations between BigDecimal and primitive data types
      BigDecimal sum = num1.add(BigDecimal.valueOf(num2));
      BigDecimal difference = num1.subtract(BigDecimal.valueOf(num2));
      BigDecimal product = num1.multiply(BigDecimal.valueOf(num2));
      BigDecimal quotient = num1.divide(BigDecimal.valueOf(num2));
      
      // Print results
      System.out.println("Sum: " + sum);
      System.out.println("Difference: " + difference);
      System.out.println("Product: " + product);
      System.out.println("Quotient: " + quotient);
   }
}

輸出

Sum: 15.25
Difference: 5.25
Product: 51.25
Quotient: 2.05

方法2:使用BigDecimal和基本資料型別之間的轉換

在這種方法中,初始化BigDecimal物件,然後使用BigDecimal和基本資料型別之間的轉換執行BigDecimal和基本資料型別之間的算術運算。

示例

import java.math.BigDecimal;

public class Main {
   public static void main(String[] args) {
      
      // Initialize a BigDecimal object and a primitive int variable
      BigDecimal num1 = new BigDecimal("20.55");
      int num2 = 7;
      
      // Convert the BigDecimal object to a double and perform arithmetic operations between primitive data types
      double doubleNum1 = num1.doubleValue();
      double sum = doubleNum1 + num2;
      double difference = doubleNum1 - num2;
      double product = doubleNum1 * num2;
      double quotient = doubleNum1 / num2;
      
      // Convert the result of each arithmetic operation back to a BigDecimal object
      BigDecimal sumBD = new BigDecimal(Double.toString(sum));
      BigDecimal differenceBD = new BigDecimal(Double.toString(difference));
      BigDecimal productBD = new BigDecimal(Double.toString(product));
      BigDecimal quotientBD = new BigDecimal(Double.toString(quotient));
      
      // Print results
      System.out.println("Sum: " + sumBD);
      System.out.println("Difference: " + differenceBD);
      System.out.println("Product: " + productBD);
      System.out.println("Quotient: " + quotientBD);
   }
}

輸出

Sum: 27.55
Difference: 13.55
Product: 143.85
Quotient: 2.935714285714286

在這篇文章中,我們探討了如何使用Java程式語言執行BigDecimal和基本資料型別之間的算術運算。

更新於:2023年8月17日

瀏覽量:160

啟動你的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.