Используйте предопределенные десятичные форматы , которые JDK предлагает для локалей:
public static void main(String[] args) throws ParseException {
String input = "45,78";
NumberFormat from = DecimalFormat.getNumberInstance(Locale.FRANCE);
NumberFormat to = DecimalFormat.getNumberInstance(Locale.US);
String output = to.format(from.parse(input));
System.out.println(output); // "45.78"
}
Выбирайте локали, которые вам подходят.
Это еще один случай "не изобретай велосипед" и "используй то, что предлагает JDK"