致命异常:输入字符串的java.lang.NumberFormatException:";4,75“;
在我的代码中,我进行了大量测试,没有崩溃。但当我将我的应用程序发布到PlayStore时,很多崩溃都出现在这条线上致命异常:输入字符串的java.lang.NumberFormatException:";4,75“;,java,android,kotlin,Java,Android,Kotlin,在我的代码中,我进行了大量测试,没有崩溃。但当我将我的应用程序发布到PlayStore时,很多崩溃都出现在这条线上 adjustedPrice = "%.2f".format(price).toFloat() 我正在手动测试,试图在崩溃中添加一些值,但它似乎没有崩溃。如果我把价格定为4.75,没关系 有人能告诉我这次车祸的原因吗 Fatal Exception: java.lang.NumberFormatException: For input string: &quo
adjustedPrice = "%.2f".format(price).toFloat()
我正在手动测试,试图在崩溃中添加一些值,但它似乎没有崩溃。如果我把价格定为4.75,没关系
有人能告诉我这次车祸的原因吗
Fatal Exception: java.lang.NumberFormatException: For input string: "4,75"
at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:2043)
at sun.misc.FloatingDecimal.parseFloat(FloatingDecimal.java:122)
at java.lang.Float.parseFloat(Float.java:451)
小数点分隔符不是逗号而是点(.) 在解析之前,可以将逗号替换为点
val newPrice = price.replace(",", ".")
更新:还可以使用自定义符号进行解析
fun parse(decimal: String): Number? {
val symbols = DecimalFormatSymbols().apply {
decimalSeparator = ','
groupingSeparator = ' '
}
val df = DecimalFormat().apply {
decimalFormatSymbols = symbols
}
return try {
df.parse(decimal) ?: 0
} catch (ex: ParseException){
0
}
}
您的问题与机器上的语言环境有关,请参阅查找
4.75
和4,75
之间的差异。检查异常。