國際化適配問題句號變成逗號
阿新 • • 發佈:2018-12-06
中英文環境正常,西語環境會閃退 奔潰 報錯日誌java.lang.NumberFormatException: Invalid float: ",00"
原始碼如下
public void setEnergy(float energy) {
DecimalFormat df = new DecimalFormat("#.00");
this.energy = Float.parseFloat(df.format(energy));
}
斷點除錯的時候發現是有值的呀,百度了一下發現原來是因為,西班牙 德國 義大利這些國家是用,而不是用.導致了我0.0變成了0,0 然後就奔潰了
修改方案 添加了國際化適配
public void setEnergy(float energy) { DecimalFormat df = new DecimalFormat("#.00"); try{ this.energy = Float.parseFloat(df.format(energy)); }catch(Exception e) { //國際化適配問題,西語環境下.會變成, 所以要做適配管理 this.energy = Float.parseFloat(String.format(Locale.CHINA, "%.3f", energy)); } }