由java.lang.NumberFormatException引起:无效浮点:“0”∞&引用;
我正在查看Fabric Crashlytics,以查看我的应用程序发生的崩溃,并发现以下情况: 由java.lang.NumberFormatException引起:无效浮点:∞" 位于java.lang.StringToReal.invalidReal(StringToReal.java:63) 位于java.lang.StringToReal.initialParse(StringToReal.java:164) 位于java.lang.StringToReal.parseFloat(StringToReal.java:323) 位于java.lang.Float.parseFloat(Float.java:306) 代码由java.lang.NumberFormatException引起:无效浮点:“0”∞&引用;,java,exception,floating-point,Java,Exception,Floating Point,我正在查看Fabric Crashlytics,以查看我的应用程序发生的崩溃,并发现以下情况: 由java.lang.NumberFormatException引起:无效浮点:∞" 位于java.lang.StringToReal.invalidReal(StringToReal.java:63) 位于java.lang.StringToReal.initialParse(StringToReal.java:164) 位于java.lang.StringToReal.parseFloat(Str
public static Float parseFloat(String value) {
return Float.parseFloat(value.replace(",", "."));
}
请帮我理解一下。很可能是浮点数溢出
如果浮点值大于它所能处理的值,它将返回无穷大(这种情况也会发生除以0的情况)。您应该添加一个条件来检查数字是否介于-Float.MAX_值和Float.MAX_值之间(浮点范围从1.40239846 x 10^-45到3.40282347 x 10^38)显然,您要求它解析无穷大符号,但它无法处理。如果您需要处理它,您可以检查特殊情况。@Carcigenicate,您知道这怎么可能吗?因为用户只能键入5个字符(数字)他们可能已经逐字地输入了无穷大的符号,并且不管你用什么来验证这些数字是否被输入,都可以认为这个符号是一个数字并让它通过。我不认为一个溢出会产生一个无穷大的符号,除非在试图解析它之前对其进行格式化。