Firstly let us understand the difference between Precision and Scale.

If the number is 9232.129394, then

Precision 4, scale 2: 99.99

Precision 10, scale 0: 9999999999

Precision 8, scale 3: 99999.999

Precision 5, scale -3: 99999000

No one wants to loose the precision of the number as it will change the value by large amount. If you still want to loose the precision simply divide the number by 10 to the power precision.

There are multiple ways in Java to round the double value to certain scale, as mentioned in the below example

If the number is 9232.129394, then

**Precision**represents the number of number of significant digits to which a number is calculated i.e. 4 digits (9232)**Scale**represents the number of digits to the right of the decimal point i.e. 6 in above case (129394)**Some other examples are,**Precision 4, scale 2: 99.99

Precision 10, scale 0: 9999999999

Precision 8, scale 3: 99999.999

Precision 5, scale -3: 99999000

No one wants to loose the precision of the number as it will change the value by large amount. If you still want to loose the precision simply divide the number by 10 to the power precision.

There are multiple ways in Java to round the double value to certain scale, as mentioned in the below example

import java.math.BigDecimal; import java.math.RoundingMode; import java.text.DecimalFormat; public class RoundDouble { public double round1(double input, int scale) { BigDecimal bigDecimal = new BigDecimal(input).setScale(scale, RoundingMode.HALF_EVEN); return bigDecimal.doubleValue(); } public double round2(double input) { return Math.round(input * 100) / 100.0d; } public double round3(double input) { DecimalFormat df = new DecimalFormat("#.00"); return Double.parseDouble(df.format(input)); } public static void main(String[] args) { RoundDouble rd = new RoundDouble(); System.out.println(rd.round1(9232.129394d, 2)); System.out.println(rd.round2(9232.129394d)); System.out.println(rd.round3(9232.129394d)); } }

The first method of rounding using BigDecimal should be preferred in most scenarios.

## No comments:

## Post a Comment

Your comment will be published after review from moderator