Android - java.lang.RuntimeException:无效的double:“0,64”

时间:2015-07-24 08:13:09

标签: java android android-studio

我正在尝试做一些基本的数学运算,但是我收到了这个错误:

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.welldana.christian.welldanaapp/com.welldana.christian.welldanaapp.GUI.ResultActivity}: java.lang.NumberFormatException: Invalid double: "0,64"

代码做数学:

public double CalculateFilterAreaRequirement(){
    CalculateTurnoverPerHour();
    double tmp = turnoverPerHour/turnoverRate;
    filterAreaRequirement = Double.parseDouble(new DecimalFormat("#.##").format(tmp));
    return filterAreaRequirement;
}

我不知道为什么用.替换,

2 个答案:

答案 0 :(得分:2)

DecimalFormat使用适合Locale的小数格式,而Double.parseDouble()则不然。您的默认语言环境以,为小数点分隔符。

可以指定要使用的显式语言环境,但格式化和解析值没有多大意义。如果您需要截断为两位小数,请使用

Math.floor(tmp * 100) / 100

答案 1 :(得分:1)

DecimalFormat Locale敏感。可能您的Locale使用,作为小数分隔符。尝试强制使用的Locale。对于它,例如Locale.US