There are many ways to do this. Those are given below:
Suppose your original number is listed below:
double number = 2354548.235;
Using NumberFormat:
NumberFormat formatter = new DecimalFormat("#0.00"); System.out.println(formatter.format(number));
Using String.format:
System.out.println(String.format("%,.2f", number));
Using DecimalFormat and pattern:
NumberFormat nf = DecimalFormat.getInstance(Locale.ENGLISH); DecimalFormat decimalFormatter = (DecimalFormat) nf; decimalFormatter.applyPattern("#,###,###.##"); String fString = decimalFormatter.format(number); System.out.println(fString);
Using DecimalFormat and Template
DecimalFormat decimalFormat = new DecimalFormat("############.##"); BigDecimal formattedOutput = new BigDecimal(decimalFormat.format(number)); System.out.println(formattedOutput);
In all cases, the output will be: 2354548.23
Note :
During rounding, you can add RoundingMode to your formatter. Here are a few rounding options below:
decimalFormat.setRoundingMode(RoundingMode.CEILING); decimalFormat.setRoundingMode(RoundingMode.FLOOR); decimalFormat.setRoundingMode(RoundingMode.HALF_DOWN); decimalFormat.setRoundingMode(RoundingMode.HALF_UP); decimalFormat.setRoundingMode(RoundingMode.UP);
Here is the import :
import java.math.BigDecimal; import java.math.RoundingMode; import java.text.DecimalFormat; import java.text.NumberFormat; import java.util.Locale;
Md. Sajedul Karim Apr 07 '19 at 4:50 2019-04-07 04:50
source share