I need to format the number.
I need the following result:
3434 -> 3 434
3434.34 -> 3 434.34
3434.3 -> 3 434.30
Here is my code:
val formatter = DecimalFormat("#,###,##0.##")
return formatter.format(value)
But I get a result like this:
3434 -> 3 434
3434.34 -> 3 434.34
3434.3 -> 3 434.3 // wrong!! expected 3 434.30
I need to add zero at the end if there is one digit after the decimal point.
Please help me how I can fix the problem?
CodePudding user response:
Example:
import java.text.DecimalFormat;
import java.text.DecimalFormatSymbols;
import java.util.*;
public class AddZeroToOneDigitDecimal{
public static void main(String []args){
System.out.println(customFormat(3434));
System.out.println("----------");
System.out.println(customFormat(3434.34));
System.out.println("----------");
System.out.println(customFormat(3434.3));
}
public static String customFormat(double d){
String result = formatter.format(d);
return (result.replace(".00",""));
}
private static DecimalFormat formatter;
private static final String DECIMAL_FORMAT = "#,###,##0.00";
private static DecimalFormatSymbols formatSymbols = new DecimalFormatSymbols(Locale.ENGLISH);
static {
formatSymbols.setDecimalSeparator('.');
formatSymbols.setGroupingSeparator(' ');
formatter = new DecimalFormat(DECIMAL_FORMAT, formatSymbols);
}
}
Simplified
val formatter = DecimalFormat("#,###,##0.00");
return formatter.format(value).replace(".00","");
CodePudding user response:
Remove last two #
after .
and add 00
in place of ##
.
val dec = DecimalFormat("#,###,##0.00")