我正在尝试做一些基本的数学运算,但是我收到了这个错误:
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;
}
我不知道为什么用.
替换,
答案 0 :(得分:2)
DecimalFormat
使用适合Locale
的小数格式,而Double.parseDouble()
则不然。您的默认语言环境以,
为小数点分隔符。
你可以指定要使用的显式语言环境,但格式化和解析值没有多大意义。如果您需要截断为两位小数,请使用
Math.floor(tmp * 100) / 100
答案 1 :(得分:1)
DecimalFormat
Locale
敏感。可能您的Locale使用,
作为小数分隔符。尝试强制使用的Locale。对于它,例如Locale.US