扫描仪sc - 输出数字到小数点后2位

时间:2015-09-09 15:11:56

标签: java integer java.util.scanner pi

我是JAVA和一般编程的新手。所以请耐心等待。我试图在2位小数位输出PI,但是当我输入3.14时,我得到了一个

Exception in thread "main" java.util.InputMismatchException

我觉得我很亲密,我只需要调整代码就可以了。我已经扫描了几天的论坛,似乎无法让它发挥作用。任何解释/帮助将不胜感激!

public static void main(String[] args) {
  Scanner sc = new Scanner(System.in);
  System.out.println("What is the value of PI to two decimal places? : ");
  int pi = sc.nextInt();
  System.out.println("PI is: " + pi);
}

1 个答案:

答案 0 :(得分:0)

你应该扫描一个double,而不是int。你应该格式化两到两位小数。

public static void main(String[] args)
{
    Scanner sc = new Scanner(System.in);
    System.out.println( "What is the value of PI to two decimal places?:");
    double pi = sc.nextDouble();
    DecimalFormat df = new DecimalFormat("#.00");
    String piStr = df.format( pi);
    System.out.println("PI is: " + piStr);
}