java.lang.NumberFormatException : Invalid float: "٠"

标签 java android localization number-formatting

所以我遇到了崩溃 java.lang.NumberFormatException: Invalid float: "٠" 因为由于某种原因,在埃及设备上,十进制分隔符是 ٠ 而不是 。 我该如何解决这个问题?它可以处理使用 ,(逗号)作为小数点符号的用户,但是这个奇怪的点会导致崩溃。这是有问题的代码:

DecimalFormat oneDigit = new DecimalFormat("#.#");
DecimalFormatSymbols dfs = new DecimalFormatSymbols();
dfs.setDecimalSeparator('.');
oneDigit.setDecimalFormatSymbols(dfs);
sevenDaysAverage = Float.valueOf(oneDigit.format(sevenDaysAverage));  // exception here

我的目标是使用由点分隔的单个小数来格式化数字,因为该应用程序是英文的,这就是数字的显示方式。

最佳答案

String f = "20.0"; // suppose . is weird symbol  
String f1 = f.replace(".","."); // replace weird dot with decimal point  

然后将 f1 转换为 String

sevenDaysAverage = Float.valueOf(f1); 

关于java.lang.NumberFormatException : Invalid float: "٠",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28326460/

相关文章:

java - 在 java 中创建我们自己的异常类

java - 从列表中随机选择一个项目

java - 无法在Android中实例化类型NotificationListenerService

Android map 加载非常缓慢/在点击它之前根本不加载启动 Activity

iPhone 本地化(不含英语)

node.js - Mongoose/Node.JS 中的本地化值未更新

php - 如何在 URL 中转义中文 Unicode 字符?

java - 如何从 Modbus 读取长(交换)值?

java - "Manifest merger failed : uses-sdk:minSdkVersion 9 cannot be smaller than version 14"是什么意思

Android暂停和恢复上传