防止数字根据android中的语言环境更改

防止数字根据android中的语言环境更改,第1张

概述当用户更改设备的语言环境时,编号也会根据所选的语言环境而更改.这在执行数学运算时导致NumberFormatException,并且应用程序崩溃了.导致崩溃的代码段如下所示.publicstaticdoubleToDataUnitMB(double_dataBytes){doubledDataBytes;dDataBytes=Double.parseDouble(getD

当用户更改设备的语言环境时,编号也会根据所选的语言环境而更改.这在执行数学运算时导致NumberFormatException,并且应用程序崩溃了.导致崩溃的代码段如下所示.

public static double ToDataUnitMB(double _dataBytes){double dDataBytes;dDataBytes = Double.parseDouble(getDecimalFormat().format(_dataBytes / 1048576));return dDataBytes; }

此代码段导致NumberFormatException,并且_dataBytes中的值显示为“ ७२.४१”.有人可以帮助我防止用户更改语言环境时更改数字.

更新资料

执行以下 *** 作后,我得到值“ ७२.७२”.getDecimalFormat().format(_dataBytes / 1048576)
因此,在解析为Double时,它显示numberFormatException

解决方法:

由于您是从原始_dataBytes开始的,因此您有几种选择,可以独立于语言环境格式化数字.

第一种方法:

您可以根据需要修改以下代码段.无论用户的语言环境如何,它都将提供相同的输出.

        String patern = "###.##"; //your pattern as per need        Locale locale = new Locale("en", "US");        DecimalFormat decimalFormat = (DecimalFormat) NumberFormat.getNumberInstance(locale);                    decimalFormat.applyPattern(patern);        double formatedDouble = Double.parseDouble(decimalFormat.format(_dataBytes/(1024*1024f)));

请记住,此方法还使分组分隔符和小数点分隔符固定,因此逗号和点将始终分别用作分组分隔符和小数点分隔符.

第二种方法:

如果您不严格要求Double,则可以使用以下方法生成格式化的String:

String generateFormatedfileSize(long _dataBytes) {        String formatedfileSize = "";        long bytes = _dataBytes;        short unit = 1024;        if (bytes < unit)            formatedfileSize = bytes + " B";        else {            int exp = (int) (Math.log(bytes) / Math.log(unit));            formatedfileSize = String.format("%.1f %sB", bytes / Math.pow(unit, exp), "KMGT".charat(exp - 1));                       }        return formatedfileSize;    }

此格式对分组分隔符和小数点分隔符敏感,但对语言环境不敏感.

对于使用“ US”编号格式的本地,这将为您提供以下输出:

12.5 KB

5.3 B

8.0 MB

对于使用“欧洲”编号格式的本地:

12,5 KB

5,3 B

8,0 MB

当然,这两种方法不是唯一的,您可以在App的不同部分混合使用这些方法.

总结

以上是内存溢出为你收集整理的防止数字根据android中的语言环境更改全部内容,希望文章能够帮你解决防止数字根据android中的语言环境更改所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1081493.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-27
下一篇2022-05-27

发表评论

登录后才能评论

评论列表(0条)

    保存