对不同方法使用不同的区域设置值

时间:2018-01-11 05:28:53

标签: java java.util.scanner locale string-formatting

当我使用扫描程序类的nextDouble()方法时,如

try (Scanner input = new Scanner(Paths.get("input.txt")))
{
    double d = input.nextDouble();
    System.out.printf(Locale.getDefault(),"%.2f",d);
}
catch (NoSuchElementException | IllegalStateException | IOException e)
{
            e.printStackTrace();
}

nextDouble()方法获取逗号分隔字符串(如5,12)但printf()方法打印点分隔数(如5.12)。这种差异似乎是因为使用了不同的Locale值。 为什么nextDouble()和printf()方法使用不同的默认Locale值?

0 个答案:

没有答案