我的格式是
DecimalFormat decimalformat = new DecimalFormat("0.00##");
但我的用户是土耳其语,俄语等。他们不同的本地人。他们使用我的应用。给出错误看起来像这样 土耳其语," 10,00"
我的错误;
java.lang.NumberFormatException:无效的双重:" 10,00"
答案 0 :(得分:0)
没有足够的信息如何解析输入,但我建议你这样做:
static String parseInput(String input) throws ParseException {
DecimalFormat dFormat = new DecimalFormat("0.00##");
Number number = dFormat.parse(input);
// double numAsDouble = number.doubleValue();
return number.toString();
}
不太好,但您也可以尝试通过替换'来解析输入,':
static String parseInputByReplace(String input) throws ParseException {
DecimalFormat dFormat = new DecimalFormat("0.00##");
double number = Double.parseDouble(input.replace(',', '.'));
return dFormat.format(number);
}
答案 1 :(得分:0)
您应该使用用户的文化进行解析。 decimal.Parse
会这样做。如果你使用自己的文化意味着你明确地告诉"解析器只使用该格式。