Java中一个BigDecimal和一个int类型的如何相乘?

如题所述

Java中的Bigdecimal类型运算

双精度浮点型变量double可以处理16位有效数。在实际应用中,需要对更大或者更小的数进行运算和处理。Java在java.math包中提 供的API类BigDecimal,用来对超过16位有效位的数进行精确的运算。表5.7中列出了BigDecimal类的主要构造器和方法。

构造器  描 述 

BigDecimal(int)创建一个具有参数所指定整数值的对象。 

BigDecimal(double)创建一个具有参数所指定双精度值的对象。 

BigDecimal(long)创建一个具有参数所指定长整数值的对象。 

BigDecimal(String)创建一个具有参数所指定以字符串表示的数值的对象。

方 法描 述 

add(BigDecimal)BigDecimal对象中的值相加,然后返回这个对象。 

subtract(BigDecimal)BigDecimal对象中的值相减,然后返回这个对象。 

multiply(BigDecimal)BigDecimal对象中的值相乘,然后返回这个对象。 

divide(BigDecimal)BigDecimal对象中的值相除,然后返回这个对象。 

toString()将BigDecimal对象的数值转换成字符串。 

doubleValue()将BigDecimal对象中的值以双精度数返回。 

floatValue()将BigDecimal对象中的值以单精度数返回。 

longValue()将BigDecimal对象中的值以长整数返回。 

intValue()将BigDecimal对象中的值以整数返回。 

注意,由于一般数值类型,例如double,不能准确地代表16位有效数以上的数字,在使用BigDecimal时,应用 BigDecimal(String)构造器创建对象才有意义。另外,BigDecimal所创建的是对象,我们不能使用传统的+、-、*、/等算术运算 符直接对其对象进行数学运算,而必须调用其相对应的方法。方法中的参数也必须是BigDecimal的对象。 

eg:

两个BigDecimal  类型的数据相乘:

BigDecimal   a   =   new   BigDecimal(15124);
BigDecimal   b   =   new   BigDecimal(15124);
BigDecimal   c   =   a.multiply(b);

温馨提示:内容为网友见解,仅供参考
无其他回答

BigDecimal和Int类型的转换,以及BigDecimal的常用运算
Int类型转换为bigdecimal类型:先将int转为String,再通过BigDecimal的构造方法去创建 BigDecimal price = new BigDecimal(String str);Bigdecimal类型相加 BigDecimal newDeposit=price.add(oldDecimal);扩充 add(BigDecimal)BigDecimal对象中的值相加,然后返回这个对象。subtract(BigDecimal)BigDecimal对象中的值相减...

如何利用Java中的BigDecimal实现加减乘除功能
import java.math.BigDecimal; \/** * 由于Java的简单类型不能够精确的对浮点数进行运算,这个工具类提供精 * 确的浮点数运算,包括加减乘除和四舍五入。 *\/ public class Arith{ \/\/默认除法运算精度 private static final int DEF_DIV_SCALE = 10; \/\/这个类不能实例化 private Ar...

java中的bigdecimal该怎么用?
处理高精度浮点数时,可以使用Java中的BigDecimal类。创建BigDecimal对象,可以使用以下语法:new BigDecimal(值),或者使用字符串创建:new BigDecimal("字符串")。进行数学运算,使用BigDecimal对象时,可以调用各种方法。例如,使用add()方法对两个对象进行加法运算:BigDecimal result = value1.add(value2)。

关于BigDecimal 中的加减乘除 小数的问题?
第一种:BigDecimal(double val)Translates a double into a BigDecimal.第二种:BigDecimal(String val)Translates the String repre sentation of a BigDecimal into a BigDecimal.使用BigDecimal要用String来够造,要做一个加法运算,需要先将两个浮点数转为String,然后够造成BigDecimal,在其中一个上调用...

怎么用Java程序计算20的阶乘?
java程序计算20的阶乘,通过使用bigdecimal类来接收数据,如下例子:public class Test{ public static void main(String[] args) { BigDecimal cnt = new BigDecimal(0); for (int i = 1; i <= 20; i++) { cnt = cnt.add(jiecheng(i));\/\/循环计算20之内的阶乘 } System.out....

java中如何对较大的数字进行计算
最后一步是从0开始判断有没有大于10的数字,如果有就向前面进位(前一个加1,当前位减10),这样就可以。如果是相减,其实思路还是一样的,每位先相减,再判断是否有小于0的,如果有则向前面一位借1(前一位减1,当前位加10)如果是相乘,和上面一样,不过要注意的是进位的时候,不止进一位,...

java算法
Java中封装了BigInteger和BigDecimal可以用来计算很大的数。写个1000的阶层的程序给你看看。import java.math.BigInteger;public class Test { public static void main(String[] args) { BigInteger sum = new BigInteger("1");for(int i = 1;i<1001;i++){ BigInteger bi = new BigInteger(i+"...

使用Java中的BigDecimal类型比较大小,可以通过调用
1. compareTo方法的使用:compareTo方法是Java中许多类,包括BigDecimal类,用来比较对象大小的一个常见方法。对于BigDecimal来说,这个方法会返回一个整数,根据这个整数,我们可以判断两个BigDecimal对象的大小关系。如果返回值为负数,表示第一个BigDecimal小于第二个。如果返回值为正数,表示第一个BigDecimal...

Java为什么不能使用 BigDecimal 的 equals 方法做等值比较
在Java编程中,`BigDecimal`是数学包`java.math`提供的一种可以进行精确运算的类型。它在支付、电商等业务中使用广泛,并内置了加、减、乘、除等运算方法。然而,在使用`BigDecimal`进行数值比较时,`equals`方法的使用常常引发疑惑。本文将深入探讨为什么不能直接使用`equals`方法进行等值比较,并解释背后...

Java BigDecimal中的大于,等于、小于计算
在Java编程中,处理精确数值计算时,`BigDecimal` 类提供了一个强大的工具。`BigDecimal` 类允许执行高精度的数学操作,确保在涉及货币和金融等关键领域的计算中,不会出现因浮点数计算而产生的误差。然而,由于其高精度特性,直接进行大于、等于、小于运算需要额外的关注。使用`BigDecimal`进行比较时,需要...

相似回答