Java中要加倍的字符串
我的Java应用程序中有两个数字。我需要将字符串转换为Double,但数字的字符串表示形式是 ,-分隔数字的小数部分( 示例1,5等式6/4) .-分隔三位数的组( 示例1.000.000 eq 1000000) 。Java中要加倍的字符串,java,Java,我的Java应用程序中有两个数字。我需要将字符串转换为Double,但数字的字符串表示形式是 ,-分隔数字的小数部分( 示例1,5等式6/4) .-分隔三位数的组( 示例1.000.000 eq 1000000) 。 如何将字符串转换为双精度?DecimalFormat是您的朋友。使用DecimalFormat中的解析方法。看起来德国语言环境具有该数字格式 Double d = (Double) NumberFormat.getInstance(Locale.GERMAN).parse(s);
如何将字符串转换为双精度?
DecimalFormat
是您的朋友。使用DecimalFormat中的解析方法。看起来德国语言环境具有该数字格式
Double d = (Double) NumberFormat.getInstance(Locale.GERMAN).parse(s);
您需要去掉
,
,并用替换,
:
String s = "1000.000,15";
double d = Double.valueOf(s.replaceAll("\\.", "").replaceAll("\\,", "."));
System.out.print(d);
下面是一种使用DecimalFormat
解决此问题的方法,而不必担心区域设置
import java.text.*;
public class Test {
public static void main(String[] args) throws ParseException {
DecimalFormatSymbols dfs = new DecimalFormatSymbols();
dfs.setGroupingSeparator('.');
dfs.setDecimalSeparator(',');
DecimalFormat df = new DecimalFormat();
df.setGroupingSize(3);
String[] tests = { "15,151.11", "-7,21.3", "8.8" };
for (String test : tests)
System.out.printf("\"%s\" -> %f%n", test, df.parseObject(test));
}
}
输出:
"15,151.11" -> 15151.110000
"-7,21.3" -> -721.300000
"8.8" -> 8.800000
没错,但别忘了你必须使用正确的语言环境。否则它将无法正常工作。您能提供该类的链接吗?@mlkhmm您是指DecimalFormat吗?