java.math的相关介绍. BigDecimal类multiply如何应用

Դhttp://www.6cu.com

ߣseo外链建设

18

2021-03-26 01:46:52

    java.math.BigInteger.multiply(BigInteger val) 返回一个BigInteger,其值是 (this * val).
    声明
    以下是java.math.BigInteger.multiply()方法的声明
    public BigInteger multiply(BigInteger val)
    参数
    val - 通过此BigInteger乘以的值
    返回值
    该方法返回一个BigInteger对象的值是 this * val.
    异常
    NA
    例子
    下面的例子显示math.BigInteger.multiply()方法的用法
    package com.yiibai;
    import java.math.*;
    public class BigIntegerDemo {
    public static void main(String[] args) {
    // create 3 BigInteger objects
    BigInteger bi1, bi2, bi3;
    bi1 = new BigInteger("7");
    bi2 = new BigInteger("20");
    // multiply bi1 with bi2 and assign result to bi3
    bi3 = bi1.multiply(bi2);
    String str = bi1 + " * " + bi2 + " = " +bi3;
    // print bi3 value
    System.out.println("Multiplication result is " +str);
    }
    }
    让我们编译和运行上面的程序,这将产生以下结果:
    Multiplication result is 7 * 20 = 140
    其实java的float只能用来进行科学计算或工程计算,在大多数的商业计算中,一般采用java.math.BigDecimal类来进行精确计算。
    在使用BigDecimal类来进行计算的时候,主要分为以下步骤:
    1、用float或者double变量构建BigDecimal对象。
    2、通过调用BigDecimal的加,减,乘,除等相应的方法进行算术运算。
    3、把BigDecimal对象转换成float,double,int等类型。
    一般来说,可以使用BigDecimal的构造方法或者静态方法的valueOf()方法把基本类型的变量构建成BigDecimal对象。
    代码如下:
    BigDecimal b1 = new BigDecimal(Double.toString(0.48));
    BigDecimal b2 = BigDecimal.valueOf(0.48);
    对于常用的加,减,乘,除,BigDecimal类提供了相应的成员方法。
    代码如下:
    public BigDecimal add(BigDecimal value);//加法
    public BigDecimal subtract(BigDecimal value); //减法
    public BigDecimal multiply(BigDecimal value); //乘法
    public BigDecimal divide(BigDecimal value); //除法
    进行相应的计算后,我们可能需要将BigDecimal对象转换成相应的基本数据类型的变量,可以使用floatValue(),doubleValue()等方法。
    下面是一个工具类,该工具类提供加,减,乘,除运算。
    代码如下:
    public class Arith {
    /**
    * 提供精确加法计算的add方法
    * @param value1 被加数
    * @param value2 加数
    * @return 两个参数的和
    */
    public static double add(double value1,double value2){
    BigDecimal b1 = new BigDecimal(Double.valueOf(value1));
    BigDecimal b2 = new BigDecimal(Double.valueOf(value2));
    return b1.add(b2).doubleValue();
    }
    /**
    * 提供精确减法运算的sub方法
    * @param value1 被减数
    * @param value2 减数
    * @return 两个参数的差
    */
    public static double sub(double value1,double value2){
    BigDecimal b1 = new BigDecimal(Double.valueOf(value1));
    BigDecimal b2 = new BigDecimal(Double.valueOf(value2));
    return b1.subtract(b2).doubleValue();
    }
    /**
    * 提供精确乘法运算的mul方法
    * @param value1 被乘数
    * @param value2 乘数
    * @return 两个参数的积
    */
    public static double mul(double value1,double value2){
    BigDecimal b1 = new BigDecimal(Double.valueOf(value1));
    BigDecimal b2 = new BigDecimal(Double.valueOf(value2));
    return b1.multiply(b2).doubleValue();
    }
    /**
    * 提供精确的除法运算方法div
    * @param value1 被除数
    * @param value2 除数
    * @param scale 精确范围
    * @return 两个参数的商
    * @throws IllegalAccessException
    */
    public static double div(double value1,double value2,int scale) throws IllegalAccessException{
    //如果精确范围小于0,抛出异常信息
    if(scale<0){
    throw new IllegalAccessException("精确度不能小于0");
    }
    BigDecimal b1 = new BigDecimal(Double.valueOf(value1));
    BigDecimal b2 = new BigDecimal(Double.valueOf(value2));
    return b1.divide(b2, scale).doubleValue();
    }
    }

佭ϴý Ѷ Media8ý

在线客服

外链咨询

扫码加我微信

微信:juxia_com

返回顶部