为什么.format只在设备上导致应用崩溃?



在测试我正在开发的应用程序时,我遇到了一个奇怪的问题,我的应用程序在模拟器上运行良好,但在我的设备上崩溃了(华为p9,我不知道这是否真的很重要)。似乎这两行代码是崩溃的原因(应用程序在删除此格式化代码后在设备上运行良好):

val formatedBruttoPrice = "%.2f".format(price).toDouble()         // price is a double
val formated            = "%.2f".format(totalPrice).toDouble()    // totalPrice is also a double

我得到java.lang.NumberFormatException: For input string: "2,0"

的错误知道为什么吗?如何解决这个问题?

这是由于语言环境的差异。由于英语语言环境,模拟器将2.0转换为"2.0",但您的设备使用其他东西生成"2,0"。然后你调用.toDouble(),所以它尝试解析。从double到string再到double。只需删除.toDouble()调用并使用字符串代替。

最新更新