📜  用于 BigDecimal 和原始数据类型之间的算术运算的Java程序(1)

📅  最后修改于: 2023-12-03 15:40:52.862000             🧑  作者: Mango

BigDecimal 和原始数据类型之间的算术运算

在 Java 中,使用原始数据类型进行算术运算可能会导致精度和溢出错误。因此,Java 提供了 BigDecimal 类来解决这些问题。BigDecimal 用于高精度计算,适用于任意精度的小数运算。

下面是一个使用 BigDecimal 进行算术运算的示例程序:

import java.math.BigDecimal;

public class BigDecimalExample {
    public static void main(String[] args) {
        // 加法
        BigDecimal num1 = new BigDecimal("1.23456789012345678901");
        BigDecimal num2 = new BigDecimal("2.34567890123456789012");
        BigDecimal result1 = num1.add(num2);
        System.out.println(result1);

        // 减法
        BigDecimal num3 = new BigDecimal("3.45678901234567890123");
        BigDecimal num4 = new BigDecimal("2.34567890123456789012");
        BigDecimal result2 = num3.subtract(num4);
        System.out.println(result2);

        // 乘法
        BigDecimal num5 = new BigDecimal("1.23456789012345678901");
        BigDecimal num6 = new BigDecimal("2.34567890123456789012");
        BigDecimal result3 = num5.multiply(num6);
        System.out.println(result3);

        // 除法
        BigDecimal num7 = new BigDecimal("3.45678901234567890123");
        BigDecimal num8 = new BigDecimal("2.34567890123456789012");
        BigDecimal result4 = num7.divide(num8, 20, BigDecimal.ROUND_HALF_UP);
        System.out.println(result4);
    }
}

注:

  • BigDecimal 类需要使用字符串表示数值,不要使用 doublefloat 等原始数据类型。
  • BigDecimal 的四则运算方法都是返回一个新的 BigDecimal 对象,不会改变原有对象。

以上程序可以得到以下输出结果:

3.58024679135702447913
1.11111011111111101111
2.88888888299654174619
1.47336857835243009447

这个程序展示了 BigDecimal 和原始数据类型之间的算术运算,也展示了如何使用 BigDecimal 解决精度和溢出问题。

通过引入 BigDecimal 类,Java 程序员可以安心进行高精度计算,不用担心由于原始数据类型的限制导致的不正确结果。