BigDecimal 与原始数据类型之间的算术运算的 Java 程序

javaobject oriented programmingprogramming更新于 2024/8/5 1:31:00

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) {
      
    // 初始化一个 BigDecimal 对象和一个原始 int 变量
    BigDecimal num1 = new BigDecimal("10.25");
    int num2 = 5;
    
    // 在 BigDecimal 和原始数据类型之间执行算术运算
    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));
    
    // 打印结果
    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) {
      
    // 初始化一个 BigDecimal 对象和一个原始 int 变量
    BigDecimal num1 = new BigDecimal("20.55");
    int num2 = 7;
    
    // 将 BigDecimal 对象转换为 double 并执行原始数据类型之间的算术运算
    double doubleNum1 = num1.doubleValue();
    double sum = doubleNum1 + num2;
    double difference = doubleNum1 - num2;
    double product = doubleNum1 * num2;
    double quotient = doubleNum1 / num2;
    
    // 将每个算术运算的结果转换回 BigDecimal 对象
    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));
    
    // 打印结果
    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 和 Primitive 数据类型之间执行算术运算。


相关文章