Как мне преобразовать Double с String.format в String с точкой между целым и десятичным частями?
String s = String.format("%.2f", price);
Вышеуказанные форматы только с запятой: ",".
Ответ 1
String.format(String, Object ...) использует ваш стандарт JVM по умолчанию. Вы можете использовать любой язык с помощью String.format(Locale, String, Object ...) или java.util.Formatter напрямую.
String s = String.format(Locale.US, "%.2f", price);
или
String s = new Formatter(Locale.US).format("%.2f", price);
или
// 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);
или
// set locale using system properties at JVM startup
java -Duser.language=en -Duser.region=US ...