简体   繁体   English

由 java.lang.NumberFormatException 引起:无效浮点数:“∞”

[英]Caused by java.lang.NumberFormatException: Invalid float: "∞"

I am looking into Fabric Crashlytics to see crashes that my app has, and found this one:我正在研究 Fabric Crashlytics 以查看我的应用程序发生的崩溃,并找到了这个:

Caused by java.lang.NumberFormatException: Invalid float: "∞" 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)由 java.lang.NumberFormatException 引起:Invalid float: "∞" at java.lang.StringToReal.invalidReal(StringToReal.java:63) at java.lang.StringToReal.initialParse(StringToReal.java:164) at java.lang.StringToReal .parseFloat(StringToReal.java:323) 在 java.lang.Float.parseFloat(Float.java:306)

Code代码

public static Float parseFloat(String value) {
    return Float.parseFloat(value.replace(",", "."));
}

Please help me understand it.请帮助我理解它。

That's most likely a Float overflow.这很可能是浮动溢出。

If the Float is bigger than it can handle it returns infinity (this also happens dividing by 0).如果 Float 大于它的处理能力,它会返回无穷大(除以 0 也会发生这种情况)。 You should add a condition to check if the number is between -Float.MAX_VALUE and Float.MAX_VALUE (Float range goes from 1.40239846 x 10^-45 to 3.40282347 x 10^38)您应该添加一个条件来检查数字是否在 -Float.MAX_VALUE 和 Float.MAX_VALUE 之间(浮点范围从 1.40239846 x 10^-45 到 3.40282347 x 10^38)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM