So the problem is rounding number without rounding, for example we have a number 5.789 and if we want to keep 2 decimal places so that number would be 5.78, it's bit difficult. Because we have to use round number and the value would be 5.79 after rounding.
Below is a code snippet to drop decimal places without rounding: |
public class NumberRounding { private static final DecimalFormat formatter = new DecimalFormat("#.####################"); public static BigDecimal roundingAtFixedPrecision(Number number, Integer precision) { String[] parts = null; try { parts = formatter.format(number).split("\\."); if (parts.length == 1) { return new BigDecimal(parts[0]); } return new BigDecimal(parts[0] + "." + (parts[1].length() > precision ? parts[1].substring(0, precision) : parts[1])); } finally { number = null; precision = null; parts = null; } } } |
And output should be as below: 678.789 converted to 678.78 -39.9899 converted to -39.98 33 converted to 33 -40 converted to -40 3.9 converted to 3.9 9.009 converted to 9.00 |
Thursday, November 17, 2022
How to Drop Decimal Places Without Rounding, How to Round a Number to N Decimal Places in Java, Java – How to round double / float value to 2 decimal places, We can use DecimalFormat('0.00') or BigDecimal to round float / double to 2 decimal places.
Subscribe to:
Posts (Atom)