Вот код в соответствии с вашими входными и выходными данными:
Результат программы составляет $ 12 345,67 как для BigDecimal, так и для числа, и он также работает для float.
import java.math.BigDecimal;
import java.text.DecimalFormat;
import java.text.DecimalFormatSymbols;
public class test {
public static void main(String[] args) {
DecimalFormatSymbols symbols = new DecimalFormatSymbols();
symbols.setGroupingSeparator(',');
String pattern = "$#,##0.###";
DecimalFormat decimalFormat = new DecimalFormat(pattern, symbols);
BigDecimal bigDecimal = new BigDecimal("12345.67");
String bigDecimalConvertedValue = decimalFormat.format(bigDecimal);
String convertedValue = decimalFormat.format(12345.67);
System.out.println(bigDecimalConvertedValue);
System.out.println(convertedValue);
}
}
Отлично! Мне нравится это решение – Erick