473,324 Members | 2,581 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,324 software developers and data experts.

Averaging Errors

176 100+
Hello guys. Whenever I am learning a new programming language I like to learn the basics (variables, loops, conditionals etc) by writing a program that will calculate averages. I wrote a simple number averaging program. But when I run it
in Eclipse or the command line and I enter:
1
3
5.5

It says the average is 3.1666666666666665 when it should be 3.1666666666666667. I checked and am positive it is dividing the sum by 3. What do I do? Here is my source:

Expand|Select|Wrap|Line Numbers
  1. /* Title: Number Averaging Program
  2.  * Author: Kid Programmer
  3.  * Language: Java
  4.  * Integrated Development Enviroment: Eclipse
  5.  * Description: This program will prompt a user to enter numbers.  When the user enters a double or string the program will calculate 
  6.  * the average and print it out.  The program will then end.
  7.  */
  8. import java.util.Scanner;        //import a scanner
  9.  
  10. public class NumberAverager {    //create a class
  11.  
  12.     public static void main(String[] args) throws InterruptedException {        //start the main function
  13.         double divideby = 0, number = 0, sum = 0, average = 0;            //declare variables
  14.         Scanner scan = new Scanner(System.in);            //create a scanner named "scan"
  15.  
  16.         //explain the program
  17.         System.out.println("  Loading finished.");
  18.         System.out.println("This program will average numbers.");
  19.         System.out.println("If you type with a number the program will not work.  If you type text before typing a number the program will not work.");
  20.         System.out.println("To stop averaging numbers enter anything that is not a whole number.");
  21.         System.out.println("Press enter after each number has been entered.");
  22.         System.out.println("If the number is big, it will cancel the program.");
  23.         System.out.println("Please enter the numbers: ");
  24.  
  25.         //create a loop to execute as long as the user enters numbers
  26.         while ( scan.hasNextDouble() ) {
  27.             number = scan.nextDouble();        //prompt the user for numbers
  28.             sum = sum + number;                //add up the numbers
  29.             divideby ++;                    //increase the amount to divide the numbers by
  30.  
  31.             //if the user enters text
  32.             if ( scan.hasNextDouble() == false) {        
  33.                 average = sum / divideby;            //calculate the average
  34.                 //print the average
  35.                 System.out.print("The total average of the numbers is ");
  36.                 System.out.print(average);
  37.                 System.out.println(".");
  38.             }
  39.         }
  40.     }
  41. }
  42.  
May 9 '08 #1
1 1680
JosAH
11,448 Expert 8TB
Read this: What every computer scientist should know about floating-point arithmetic.

kind regards,

Jos
May 9 '08 #2

Sign in to post your reply or Sign up for a free account.

Similar topics

10
by: Douglas Buchanan | last post by:
I am using the following code instead of a very lengthly select case statement. (I have a lot of lookup tables in a settings form that are selected from a ListBox. The data adapters are given a...
0
by: doli | last post by:
Hi, I have the following piece of code which iterates through the potential errors: i =0 For Each error_item in myConn.Errors DTSPackageLog.WriteStringToLog myConn.Errors(i).Description...
1
by: Rotten Spice | last post by:
Hello all, I am still pretty new to Access but I do have a grasp on some basic functions. I am having a problem with averaging and I think I'm trying to do something a little too complex and...
9
by: Bill Reed | last post by:
I'm trying to add numbers from a text file and find the average. The numbers in the file are: 25 50 75 100 I expect the result to be 62.50 but I get 85.00. I've twiddled with the condition...
4
by: Matt Hamilton | last post by:
I have a query that returns multiple dates and I want to find the average date... How can I do this? I tried to use the ToOADate() to get the total of the dates as a double, then divide by the...
4
by: johnb41 | last post by:
I have a form with a bunch of textboxes. Each text box gets validated with the ErrorProvider. I want the form to process something ONLY when all the textboxes are valid. I found a solution,...
24
by: pat | last post by:
Hi everyone, I've got an exam in c++ in two days and one of the past questions is as follows. Identify 6 syntax and 2 possible runtime errors in this code: class demo {
8
by: ImOk | last post by:
I just have a question about trapping and retrying errors especially file locking or database locks or duplicate key errors. Is there a way after you trap an error to retry the same line that...
1
by: JJ R | last post by:
I am trying to develop a simple and efficient to calculate averages. For example I want to calculate the averages of the Values for rows 1 and 2 and use ID 1 as the row with the average result. ...
0
by: DolphinDB | last post by:
Tired of spending countless mintues downsampling your data? Look no further! In this article, you’ll learn how to efficiently downsample 6.48 billion high-frequency records to 61 million...
0
by: ryjfgjl | last post by:
ExcelToDatabase: batch import excel into database automatically...
0
isladogs
by: isladogs | last post by:
The next Access Europe meeting will be on Wednesday 6 Mar 2024 starting at 18:00 UK time (6PM UTC) and finishing at about 19:15 (7.15PM). In this month's session, we are pleased to welcome back...
0
by: Vimpel783 | last post by:
Hello! Guys, I found this code on the Internet, but I need to modify it a little. It works well, the problem is this: Data is sent from only one cell, in this case B5, but it is necessary that data...
1
by: PapaRatzi | last post by:
Hello, I am teaching myself MS Access forms design and Visual Basic. I've created a table to capture a list of Top 30 singles and forms to capture new entries. The final step is a form (unbound)...
1
by: CloudSolutions | last post by:
Introduction: For many beginners and individual users, requiring a credit card and email registration may pose a barrier when starting to use cloud servers. However, some cloud server providers now...
1
by: Shællîpôpï 09 | last post by:
If u are using a keypad phone, how do u turn on JavaScript, to access features like WhatsApp, Facebook, Instagram....
0
by: Faith0G | last post by:
I am starting a new it consulting business and it's been a while since I setup a new website. Is wordpress still the best web based software for hosting a 5 page website? The webpages will be...
0
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 3 Apr 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome former...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.