繁体   English   中英

在I / O中使用Double.parseDouble()

[英]Using Double.parseDouble( ) within I/O

我正在尝试编写一个程序,该程序从用户获取一系列五个双Double.parseDouble()字符串值,然后尝试使用Double.parseDouble()方法将这些字符串转换为双Double.parseDouble() 我遇到的麻烦是我必须输入两个值,然后弹出下一个“ Please enter a number ”。 这是我得到的输出:

Please enter a number 1: 4
3
Please enter a number 2: 5
4
Please enter a number 3: 3
4
Please enter a number 4: 5
6
Please enter a number 5: 4
2
The average is: 3.8 

这是我的代码:

import java.io.*;
import java.util.Scanner;

public class theman {
    public static void main(String[] args) throws IOException{

    // Variables
        int counter;
        int userEntries = 5;
        double sum = 0;


        InputStreamReader isr = new InputStreamReader(System.in);
        BufferedReader br = new BufferedReader(isr);


    // Creating a new Scanner
        Scanner scanner = new Scanner(System.in);

    // Loop for the five entries    
        for (counter = 1; counter <= userEntries; counter++) {
            String input = "";
            System.out.print("Please enter a number " + counter + ": ");
            input = br.readLine();
            double number = Double.parseDouble(input);
            sum += scanner.nextDouble();
        }   

    // Print statements
        System.out.println("The average is: " + sum / userEntries);


    } // End of method header
} // End of class header

解决此问题的最佳方法是什么? 我假设这是因为sum += scanner.nextDouble(); 但是我需要增加它,所以我真的无法删除它。

您已经拥有了double,因此无需使用Scanner.nextDouble() nextDouble()方法将输入的下一个标记扫描为double。 您应该做的是sum += number

final int userEntries = 2;
Scanner in = new Scanner(System.in);
double sum = 0.0;

for (int counter = 1; counter <= userEntries; ++counter) {
    System.out.printf("Please enter a number %d: ", counter);
    sum += in.nextDouble();
}

System.out.printf("The average is: %.2f%n", sum / userEntries);

这是更新的代码-

import java.io.*;
import java.util.Scanner;

public class theman {
    public static void main(String[] args) throws IOException{

    // Variables
    int counter;
    int userEntries = 5;
    double sum = 0;

    // Creating a new Scanner
    Scanner scanner = new Scanner(System.in);

    // Loop for the five entries
    for (counter = 1; counter <= userEntries; counter++) {
         System.out.print("Please enter a number " + counter + ": ");
         sum += scanner.nextDouble();
    }

    // Print statements
    System.out.println("The average is: " + sum / userEntries);


  } // End of method header
} // End of class header

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM