How to format Double with dot?
61,253
Solution 1
String.format(String, Object ...)
is using your JVM's default locale. You can use whatever locale using String.format(Locale, String, Object ...)
or java.util.Formatter
directly.
String s = String.format(Locale.US, "%.2f", price);
or
String s = new Formatter(Locale.US).format("%.2f", price);
or
// do this at application startup, e.g. in your main() method
Locale.setDefault(Locale.US);
// now you can use String.format(..) as you did before
String s = String.format("%.2f", price);
or
// set locale using system properties at JVM startup
java -Duser.language=en -Duser.region=US ...
Solution 2
Based on this post you can do it like this and it works for me on Android 7.0
import java.text.DecimalFormat
import java.text.DecimalFormatSymbols
DecimalFormat df = new DecimalFormat("#,##0.00");
df.setDecimalFormatSymbols(new DecimalFormatSymbols(Locale.ITALY));
System.out.println(df.format(yourNumber)); //will output 123.456,78
This way you have dot and comma based on your Locale
Answer edited and fixed thanks to Kevin van Mierlo comment
Author by
Shikarn-O
Updated on July 08, 2022Comments
-
Shikarn-O almost 2 years
How do I format a Double with
String.format
to String with a dot between the integer and decimal part?String s = String.format("%.2f", price);
The above formats only with a comma: ",".