使用阿拉伯数字 Integer.valueOf("۱")
返回整数 1 但 Float.valueOf("۱")
或 Float.parseFloat("۱")
抛出 NumberFormatException
如果你使用英文数字Float.valueOf("1")
,它不会抛出任何异常,这是java中的错误还是有一些解释?
我怎样才能解析这样的数字?
我在android环境中工作;
最佳答案
好像 Float.parseFloat()
不支持东方阿拉伯数字。或者,您可以使用 NumberFormat
类(class):
Locale EASTERN_ARABIC_NUMBERS_LOCALE = new Locale.Builder()
.setLanguage("ar")
.setExtension('u', "nu-arab")
.build();
float f = NumberFormat.getInstance(EASTERN_ARABIC_NUMBERS_LOCALE)
.parse("۱٫۵")
.floatValue();
System.out.println(f);
输出:
1.5
关于java - Integer.valueOf 阿拉伯数字工作正常,但 Float.valueOf 相同数字给出 NumberFormatException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60044997/