android 开发中代码是这样写的:
float width = getMeasuredWidth(); float viewHeight = getMeasuredHeight(); float height = (viewHeight*92)/8; DecimalFormat df=new DecimalFormat("0.00"); float compare = Float.valueOf(df.format(width/height));
有的机器出现如下错误,然而还不是稳定出现:
java.lang.NumberFormatException: Invalid float: "1,94"
at java.lang.StringToReal.invalidReal(StringToReal.java:63)at java.lang.StringToReal.initialParse(StringToReal.java:164)
at java.lang.StringToReal.parseFloat(StringToReal.java:323)
at java.lang.Float.parseFloat(Float.java:306)
at java.lang.Float.valueOf(Float.java:343)
at com.yew.cashclient.widget.MarqueeView.prepareAnimation(MarqueeView.java:149)
at com.yew.cashclient.widget.MarqueeView.access$1000(MarqueeView.java:27)
at com.yew.cashclient.widget.MarqueeView$4.afterTextChanged(MarqueeView.java:245)
at android.widget.TextView.sendAfterTextChanged(TextView.java:7695)
出现如下情况原因主要有:
1.系统语言设置的是西班牙语,法语等其他部分国家语言,然后转换时使用默认的语言时,会被转换成 1,94,出现如上错误;
2.运行的系统,如Android系统做国际化做的比较完善,默认的国际化标准可能设置的就是出错的标准,就会出现如上错误。
解决方案:在转换时,设置Locale.setDafult(Locale.US).设置成一种比较常规的默认国际化标准。。可能这也是DecimalFormat转换的弊端