简单的Java距离计算器。

时间:2014-12-17 19:32:03

标签: java

每当我将x1(或任何其他int)作为带小数的数字(例如3.7)运行时,我会收到以下错误消息。我试图找出导致错误的原因但是因为我不是一个非常优秀的Java程序员(但:) :)我似乎无法弄明白。

提前致谢。

错误消息:

Exception in thread "main" java.util.InputMismatchException
    at java.util.Scanner.throwFor(Scanner.java:864)
    at java.util.Scanner.next(Scanner.java:1485)
    at java.util.Scanner.nextInt(Scanner.java:2117)
    at java.util.Scanner.nextInt(Scanner.java:2076)
    at MathAvstand.main(MathAvstand.java:12)

该计划:

import java.lang.Math;
import java.text.DecimalFormat;
import java.util.Scanner;

public class MathAvstand {

    public static void main(String[] args) {

        Scanner keyboard = new Scanner(System.in);

        System.out.print("x1: ");
        double x1 = keyboard.nextInt();

        System.out.print("x2: ");
        double x2 = keyboard.nextInt();

        System.out.print("y1: ");
        double y1 = keyboard.nextInt();

        System.out.print("y2: ");
        double y2 = keyboard.nextInt();

        double a = x1 - x2;
        double b = y1 - y2;

        double summa1 = Math.pow(a,2)+ Math.pow(b,2);

        double avstand = Math.sqrt(summa1); 

        System.out.println("x1: " + x1);
        System.out.println("x1: " + x2);
        System.out.println("x1: " + y1);
        System.out.println("x1: " + y2);
        System.out.println("Avståndet mellan punkterna är: " + avstand); 


    }

}

4 个答案:

答案 0 :(得分:1)

将来自Scanner.nextInt()的呼叫更改为Scanner.nextDouble(),如

double x1 = keyboard.nextDouble();

int不是浮点数。

答案 1 :(得分:0)

您收到一个名为InputMismatchException的错误,因为

  keyboard.nextInt() 

正在寻找一个int,但你传递的是一个双

尝试用

替换所有用户
keyboard.nextDouble();

答案 2 :(得分:0)

问题是你正在使用nextInt然后输入一个double。

尝试:

double x1 = keyboard.nextDouble();

答案 3 :(得分:0)

调用next()方法而不是nextInt()来修复它。 您也可以像其他人建议将其更改为nextDouble(),这只是另一个建议。