java中bigdecimal的用法是什么

55次阅读
没有评论

共计 1154 个字符,预计需要花费 3 分钟才能阅读完成。

BigDecimal 是 Java 中一个用于表示和操作任意精度的十进制数的类。它提供了精确的计算能力,避免了浮点数计算中的舍入误差。

下面是 BigDecimal 的常用方法和用法:

  1. 创建 BigDecimal 对象:

    • 使用整数或浮点数创建:
      BigDecimal num1 = new BigDecimal("10");
      BigDecimal num2 = new BigDecimal("3.14");
      
    • 使用 BigInteger 创建:
      BigInteger bigInteger = BigInteger.valueOf(1234);
      BigDecimal num3 = new BigDecimal(bigInteger);
      
    • 使用长整型创建:
      BigDecimal num4 = BigDecimal.valueOf(1000L);
      
  2. 进行基本的算术运算:

    BigDecimal result = num1.add(num2);        // 加法 
    BigDecimal result = num1.subtract(num2);   // 减法 
    BigDecimal result = num1.multiply(num2);   // 乘法 
    BigDecimal result = num1.divide(num2);     // 除法,除不尽时会抛出异常 
    BigDecimal result = num1.divide(num2, 2, RoundingMode.HALF_UP);   // 设置保留小数位数和舍入模式 
    
  3. 比较大小:

    int compare = num1.compareTo(num2);   // 返回 -1(小于)、0(等于)、1(大于)
    boolean equalTo = num1.equals(num2);  // 判断是否相等 
    
  4. 设置精度和舍入模式:

    BigDecimal result = num1.setScale(2, RoundingMode.HALF_UP);   // 设置保留小数位数和舍入模式 
    
  5. 转换为其他类型:

    int intValue = num1.intValue();          // 转换为 int 类型 
    long longValue = num1.longValue();       // 转换为 long 类型 
    double doubleValue = num1.doubleValue(); // 转换为 double 类型 
    
  6. 其他常用方法:

    int precision = num1.precision();        // 返回有效位数 
    int scale = num1.scale();                // 返回小数位数 
    BigDecimal rounded = num1.round(MathContext.DECIMAL32);   // 使用指定的 MathContext 进行舍入 
    

需要注意的是,由于 BigDecimal 是不可变类,所有的计算操作都会返回新的 BigDecimal 对象。另外,对于除法运算可能会抛出异常,因此需要根据具体情况进行异常处理。

丸趣 TV 网 – 提供最优质的资源集合!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-12-20发表,共计1154字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)