Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
“线程中的异常”;“主要”;java.util.InputMismatchException,扫描仪出错_Java - Fatal编程技术网

“线程中的异常”;“主要”;java.util.InputMismatchException,扫描仪出错

“线程中的异常”;“主要”;java.util.InputMismatchException,扫描仪出错,java,Java,在练习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.nextDouble(Scanner.

在练习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.nextDouble(Scanner.java:2413)
    at grocerystore.GroceryStore.main(GroceryStore.java:19)
C:\Users\aslan\AppData\Local\NetBeans\Cache\8.2\executor-snippets\run.xml:53: 
我的代码:

package grocerystore;
import java.util.Scanner;
/**
 *
 * @author aslan
 */
public class GroceryStore {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        double [] prices = new double [5];
        Scanner in = new Scanner(System.in);
        System.out.println("Enter 5 prices: ");
        prices[0] = in.nextDouble();
        prices[1] = in.nextDouble();
        prices[2] = in.nextDouble();
        prices[3] = in.nextDouble();
        prices[4] = in.nextDouble();
        double total = prices[0] + prices[1] + prices[2] + prices[4];
        System.out.printf("the tot1al of all 5 items is:$%5.2f" +total);
    }
}

有人能帮忙吗

除了.nextDouble()中的
的数字或句号以外的任何内容都会引发
输入不匹配异常。所以,尽量确保你只把数字和句号放进去

另外,
printf()
的参数是格式字符串,然后是参数。由于您在提供的
字符串中有一个格式说明符,因此它必须有一个匹配的参数。因此正确的语法是
.out.printf(“全部5项合计为:$%5.2f”,总计)

另外,我注意到您错过了
价格[3]
。一个有效的解决办法:

        double[] prices = new double[5];

        Scanner in = new Scanner(System.in);
        System.out.println("Enter 5 prices: ");

        prices[0] = in.nextDouble();
        prices[1] = in.nextDouble();
        prices[2] = in.nextDouble();
        prices[3] = in.nextDouble();
        prices[4] = in.nextDouble();

        double total = prices[0] + prices[1] + prices[2] + prices[3] + prices[4];

        System.out.printf("the tot1al of all 5 items is:$%5.2f", total);


Output:

    Enter 5 prices: 
    .0
    .1
    .2
    .3
    .4
    the tot1al of all 5 items is:$ 1.00

请举例说明您正在输入的内容;任何格式为x.y的数字都应为.System.out.printf(“所有5项的合计为:$%5.2f”+总计);将其更改为System.out.println(“所有5项的总和为:+total”);但同样的问题也出现了。我正在输入x.y或x.yy,但它没有work@AslanAli我的意思并不是说x.y在一个数字后面加上一个小数,然后再加上另一个数字。示例包括2.2、31.0和11.2尝试在输入中使用逗号而不是点(如12,38),看看会发生什么;顺便问一下,total没有添加
价格[3]
?逗号有效!!!谢谢:)