如何指定小数分隔符

时间:2012-01-31 15:06:09

标签: java double delimiter

我有一个相当简单的问题。我得到像6.03这样的实数输入,但这给了我错误。如果我将其更改为6,03,则可以。但是,我无法更改我需要处理的输入,那么如何告诉Java使用.作为分隔符而不是,

Scanner sc = new Scanner(System.in);
double gX = sc.nextDouble(); // Getting errors

由于

3 个答案:

答案 0 :(得分:4)

Scanner可以与Locale一起使用,您需要指定使用Locale作为小数点分隔符的.

Scanner sc = new Scanner(System.in).useLocale(Locale.ENGLISH); 

答案 1 :(得分:1)

您可能遇到了Locale问题。您可以使用java.text.NumberFormat进行解析。

NumberFormat format = NumberFormat.getInstance(Locale.US);
Number number = format.parse("6.03");
double d = number.doubleValue();

答案 2 :(得分:1)

Taken directly from the manual.

区域设置敏感格式

前面的示例为默认的Locale创建了一个DecimalFormat对象。如果需要非默认语言环境的DecimalFormat对象,则实例化NumberFormat,然后将其强制转换为DecimalFormat。这是一个例子:

NumberFormat nf = NumberFormat.getNumberInstance(loc);
DecimalFormat df = (DecimalFormat)nf;
df.applyPattern(pattern);
String output = df.format(value);
System.out.println(pattern + " " + output + " " + 
                   loc.toString());

运行上一个代码示例将导致后面的输出。格式化的数字位于第二列,因Locale而异:

###,###.###      123,456.789     en_US
###,###.###      123.456,789     de_DE
###,###.###      123 456,789     fr_FR