1. 程式人生 > >國際化適配問題句號變成逗號

國際化適配問題句號變成逗號

  中英文環境正常,西語環境會閃退 奔潰 報錯日誌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));
        }
    }