java:从文件读取时循环产生不正确的输出?

标签 java file while-loop average scanning

此循环生成小时数和支付金额的平均值,但输出在数学上是不正确的。我如何编辑此代码以生成正确的平均小时值和平均付费值?

         Scanner openFile = new Scanner(inFile);
         while (openFile.hasNext()) {
                if (openFile.hasNextDouble()) {
                    totalHours += openFile.nextDouble();
                    numOfHourInputs++;
                }
                if (openFile.hasNextDouble()) {
                    totalPaid += openFile.nextDouble();
                    numOfCharges++;
                }
                else {
                    openFile.next(); }
            }

        averageHours = (totalHours/numOfHourInputs);
        averagePaid = (totalPaid/numOfCharges);

下面是我的文件: 第一列对于计算平均值并不重要。第二列包含小时数。第三列包含费用。

用户可以向该文件添加更多数据 - 文件内的值可以更改。 10.0 9.95 b 10.0 13.95 b 20.0 13.95 c 50.0 19.95 c 30.0 19.95

最佳答案

删除其他:

else {
    openFile.next(); //this consumes all input
}

关于java:从文件读取时循环产生不正确的输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28535744/

相关文章:

c++ - mbed os 5 c++ 编程

java - 使用 Eclipse 的 GAE 中的 NoClassDefFoundError

c++ - 我如何修改以下代码,以便我实际上将文件的内容读入一个数组然后打印出该数组?

java - Eclipse Juno-WindowBuilder 给出解析错误(java.lang.IllegalArgumentException)

java - Java 有什么方法可以获取当前文件名和当前行号?

php - 如何使用html和php上传音频文件?

python - 在 for 循环中嵌套 for 循环,将每个循环打印到新文件

java - 我可以给 boolean 基元一个条件作为初始化吗?

java - 摆脱方形护腕。或者如何获取实际的字符串

Java - 如何从点数组中删除元素并正确返回新的固定数组