输出中的句点为double但输入为double时为逗号?

时间:2015-11-25 16:58:30

标签: java formatting double comma period

我在java中编写了一个简单的计算器,它从用户那里获取两个Double类型的数字并输出总和。当我输入带有句点(2.0)的数字时,我会收到错误。但是当我用逗号(2,0)输入时,它可以工作!然后它以2.0的形式输出答案。

为什么我的java通过逗号识别双输入,但是用句点输出?我跟着的视频教程,这个家伙用句点输入他的双倍,并用句号输出它。

这是我的代码:

import java.util.Scanner;

public class ScannerIntro {
    public static void main(String args[]){

        Scanner bucky = new Scanner(System.in);
        double firstNumber, secondNumber, answer;
        System.out.println("Enter first number: ");
        firstNumber = bucky.nextDouble();

        System.out.println("Enter Second number: ");
        secondNumber = bucky.nextDouble();

        answer = firstNumber+secondNumber;
        System.out.println("The answer is:");
        System.out.println(firstNumber+" + "+secondNumber+" = "+answer);

    }
}

1 个答案:

答案 0 :(得分:0)

nextdouble(类扫描程序)解释输入的方式取决于您所在的语言环境:

http://docs.oracle.com/javase/7/docs/api/java/util/Scanner.html

在某些国家(如法国或德国),句号用作千位分隔符,而逗号用作小数点。

输出来自使用默认方式的其他类。

你可以

1)设置扫描仪的区域设置,使其与输出匹配。为此使用函数:

  useLocale(Locale locale)

2)设置格式printf确定格式化数字:

来自文档: https://docs.oracle.com/javase/tutorial/java/data/numberformat.html

public PrintStream format(Locale l, String format, Object... args)

两种方式都有效。现在你必须决定哪一个适合你。