I have custom DecimalFormat
in Edittext's addTextChangedListener method, everything is working perfectly but when I change language (locale) my addTextChangedListener is not working.
double answer = inputDouble * counterToDouble; DecimalFormat df = new DecimalFormat("##.########"); // df=(DecimalFormat)numberFormat; df.setRoundingMode(RoundingMode.DOWN); answer = Double.parseDouble(df.format(answer)); unicoinsAmmount.setText(String.valueOf(df.format(answer)));
I searched about my problem and found a NumberFormat
solution:
NumberFormat numberFormat = NumberFormat.getNumberInstance(Locale.US);
but I don't know how I can use this code.
With the DecimalFormatSymbols#setDecimalSeparator() method we can change the decimal separator and with the DecimalFormatSymbols#setGroupingSeparator() method we can change the grouping separator.
The java. text. DecimalFormat class is used for formatting numbers as per customized format and as per locale.
DecimalFormat isn't thread-safe, thus we should pay special attention when sharing the same instance between threads.
You can specify locale for DecimalFormat
this way:
DecimalFormatSymbols symbols = new DecimalFormatSymbols(Locale.US); DecimalFormat format = new DecimalFormat("##.########", symbols);
You may try by first converting to NumberFormat
and then Cast it to DecimalFormat
Integer vc = 3210000; NumberFormat nf = NumberFormat.getNumberInstance(Locale.US); DecimalFormat formatter = (DecimalFormat) nf; formatter.applyPattern("#,###,###"); String fString = formatter.format(vc); return convertNumbersToEnglish(fString);
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With