使用格式将字符串转换为数字
Convert String to Number with Format
我想知道是否有现成的方法可以将格式化的数字字符串转换为数字,例如“123,456.78”转换为123456.78
基本上,与 DecimalFormat 函数不同,DecimalFormat 函数将双精度变量转换为遵循给定格式(例如“###,###.##”模式)的字符串。我想实现此功能的反向操作,它将格式为“###,###.##”的字符串转换为双精度。是否有 API 可以执行此操作?
谢谢。
这是一个简单的方法
String number = "20,000,000";
int x = Integer.parseInt(number.replace(",", ""));
System.out.println(x);
你把不属于数字的char's
替换成""
,然后解析成一个原语即可。
String number = "20,000,000.56";
DecimalFormat df = new DecimalFormat("#");
df.setMaximumFractionDigits(5);
double x = Double.parseDouble(number.replace(",", ""));
System.out.println(df.format(x));
对于 Double 来说有点不同,因为它会显示指数输出,你必须阻止它。上面的代码就是这样做的。
df.format(x)
Returns 一个字符串,但您可以使用 Double.parseDouble
方法
转换它
这是一种使用 Regex
和 replace
方法的方法,如果您有多个定界符并且您都知道它们的话:
假设这里的分隔符是“-”和“,”
double x = Double.parseDouble(number.replace("[-,]", "");
你应该看过 documentation for DecimalFormat and its superclass. You would have discovered that it has not only format
methods, but also parse
methods like this one。
做你想做的最简单的方法是:
NumberFormat format = NumberFormat.getInstance();
Number value = format.parse(string);
// If you specifically want a double...
double d = value.doubleValue();
您将必须捕获 ParseException 并处理它。当您的字符串不代表有效数值时,您如何做取决于您想要做什么。如果是用户输入,您可能希望让用户再次输入文本。
我想知道是否有现成的方法可以将格式化的数字字符串转换为数字,例如“123,456.78”转换为123456.78
基本上,与 DecimalFormat 函数不同,DecimalFormat 函数将双精度变量转换为遵循给定格式(例如“###,###.##”模式)的字符串。我想实现此功能的反向操作,它将格式为“###,###.##”的字符串转换为双精度。是否有 API 可以执行此操作?
谢谢。
这是一个简单的方法
String number = "20,000,000";
int x = Integer.parseInt(number.replace(",", ""));
System.out.println(x);
你把不属于数字的char's
替换成""
,然后解析成一个原语即可。
String number = "20,000,000.56";
DecimalFormat df = new DecimalFormat("#");
df.setMaximumFractionDigits(5);
double x = Double.parseDouble(number.replace(",", ""));
System.out.println(df.format(x));
对于 Double 来说有点不同,因为它会显示指数输出,你必须阻止它。上面的代码就是这样做的。
df.format(x)
Returns 一个字符串,但您可以使用 Double.parseDouble
方法
这是一种使用 Regex
和 replace
方法的方法,如果您有多个定界符并且您都知道它们的话:
假设这里的分隔符是“-”和“,”
double x = Double.parseDouble(number.replace("[-,]", "");
你应该看过 documentation for DecimalFormat and its superclass. You would have discovered that it has not only format
methods, but also parse
methods like this one。
做你想做的最简单的方法是:
NumberFormat format = NumberFormat.getInstance();
Number value = format.parse(string);
// If you specifically want a double...
double d = value.doubleValue();
您将必须捕获 ParseException 并处理它。当您的字符串不代表有效数值时,您如何做取决于您想要做什么。如果是用户输入,您可能希望让用户再次输入文本。