As a Java developer in the daily work, many times we will encounter some need to calculate the data scenario, usually for the scenario does not need to calculate the precision we can use Integer, Float or Double to calculate, although will lose precision but occasionally can be used, if we need to calculate the results accurately, we will use the class BigDecimal provided in the java.math package to implement the corresponding function.
BigDecimal is a tool for accurate data calculation, since it is a data calculation, it will definitely provide the corresponding methods of addition, subtraction, multiplication and division for us to use, as follows.
add(BigDecimal): Add the values in theBigDecimalobject and return theBigDecimalobjectsubtract(BigDecimal): The values inBigDecimalobject are subtracted, andBigDecimalobject is returned.multiply(BigDecimal): Multiply the values in theBigDecimalobject and return theBigDecimalobjectdivide(BigDecimal): Divide the values in theBigDecimalobject, and return theBigDecimalobject.
When we need to use the corresponding method, we need to create BigDecimal object first, and then we can use it, and the corresponding constructor methods are
BigDecimal(int): Create an object with the integer value specified by the parameterBigDecimal(double): Creates an object with the double precision value specified by the parameterBigDecimal(long): Creates an object with the long integer value specified by the parameterBigDecimal(String): Creates an object with the value specified by the parameter as a string.
After the BigDecimal object is created by the constructor method, the corresponding method is called and another BigDecimal parameter is passed to achieve the corresponding addition, subtraction, multiplication and division method. The following example is shown.
|
|
The result of the run is shown below.

From the above figure, we can see that BigDecimal is used in a specific way by calling the corresponding method and passing in the corresponding parameters. However, when dividing, we can see that the divide method also provides the parameter to set the exact number of digits, and it is possible to set the specific rounding method. There are several integer methods.
|
|
In addition to the methods of addition, subtraction, multiplication and division, BigDecimal also provides the method compareTo() for comparing two BigDecals, the usage is as follows
Because num2 is larger than num1, the return value is 1; when num2 is equal to num1, it returns 0; when num2 is smaller than num1, it returns -1.
The summary format is as follows
if (num2.compareTo(num1) > 0) judgment is a common operation.
Also BigDecimal provides methods to convert directly to int, long, float, double numeric values as follows, and it is used relatively rarely in general.
Use BigDecimal when you need accurate decimal calculation in your daily work, the performance of BigDecimal is relatively worse than double and float, so use it only when you need it. BigDecimal creates a new object every time we add, subtract, multiply and divide, and we need to save it when we need to use it later, so usually we try to use the constructor of String type.