android-java.lang.NumberFormatException:无效的double

android-java.lang.NumberFormatException:无效的double,第1张

概述我有一种方法可以计算两个纬度之间的差异:publicstaticdoubledistanceKM(LatLnglatLng1,LatLnglatLng2){intEARTH_RADIUS_KM=6371;doublelat1Rad=Math.toRadians(latLng1.latitude);doublelat2Rad=Math.toRadians(latLng2.latitude);doubled

我有一种方法可以计算两个纬度之间的差异:

public static double distanceKM(LatLng latLng1, LatLng latLng2) {    int EARTH_RADIUS_KM = 6371;    double lat1Rad = Math.toradians(latLng1.latitude);    double lat2Rad = Math.toradians(latLng2.latitude);    double deltaLonRad = Math.toradians(latLng2.longitude - latLng1.longitude);    double dist_travelled = Math            .acos(Math.sin(lat1Rad) * Math.sin(lat2Rad) + Math.cos(lat1Rad)                    * Math.cos(lat2Rad) * Math.cos(deltaLonRad))            * EARTH_RADIUS_KM;    dist_travelled = Double.parseDouble(new DecimalFormat("##.######")            .format(dist_travelled));    return dist_travelled;}

有时,此方法会引发Exception(我有时会在defference设备中进行测试时说):

java.lang.NumberFormatException: InvalID double: “0,179927”
at java.lang.StringToReal.invalIDReal(StringToReal.java:63)
at java.lang.StringToReal.parseDouble(StringToReal.java:269)

在这种情况下有人可以帮助我吗?谢谢

解决方法:

double的值取决于设备的语言.例如,对于法语设备,数字0.179927变为0,179927,由于逗号而将其解析为double时,它将始终抛出NumberFormatException.

您需要将分隔符从逗号更改为点.
您可以通过设置区域设置或使用DecimalFormatSymbols来更改分隔符.

如果希望分组分隔符成为一个点,则可以使用欧洲语言环境:

NumberFormat nf = NumberFormat.getNumberInstance(Locale.GERMAN);DecimalFormat df = (DecimalFormat)nf;

或者,您可以使用DecimalFormatSymbols类来更改出现在format方法生成的带格式数字中的符号.这些符号包括小数点分隔符,分组分隔符,减号和百分号,以及其他:

DecimalFormatSymbols otherSymbols = new DecimalFormatSymbols(currentLocale);otherSymbols.setDecimalSeparator(',');otherSymbols.setGrouPingSeparator('.'); DecimalFormat df = new DecimalFormat(formatString, otherSymbols);
总结

以上是内存溢出为你收集整理的android-java.lang.NumberFormatException:无效的double全部内容,希望文章能够帮你解决android-java.lang.NumberFormatException:无效的double所遇到的程序开发问题。

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

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

原文地址: http://outofmemory.cn/web/1090671.html

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

发表评论

登录后才能评论

评论列表(0条)

保存