473,670 Members | 2,333 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

Averaging Errors

176 New Member
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.1666666666666 665 when it should be 3.1666666666666 667. 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 1694
JosAH
11,448 Recognized Expert MVP
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
2325
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 similar name to the table. Rather than making a long Select Case that could become obsolete if lookup tables are added and the source table of the ListBox is edited I came up with this code.) This code works but of course it gives me build...
0
2124
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 DTSPackageLog.WriteStringToLog myConn.Errors(i).NativeError i =i +1 Next
1
2196
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 maybe I even have it set up wrong. I am putting some evaluation forms online. Each form/table is different, apart from the first 10 questions which are the exact same
9
5213
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 expression of the for statement but apparently I have no idea what I'm doing. Post-increment or pre-increment seems to make no difference. Any help appreciated.
4
1308
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 number of dates and use FromOADate() to get back to a date, but it does not produce the desired results (as I expected, but still was hopefull it might).
4
9839
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, but it seems like a workaround. I'm not sure if it's the best way: Dim ErrorCounter As Integer Private Sub btnOK_Click(ByVal sender As System.Object, ByVal e As
24
5299
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
5573
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 cause the error? In many other languages you have the option of rertying certain errors. In effect, its like a return to the exact same line. You can then retry certain # of times and then produce an error if it keeps failing.
1
1981
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. Table Exmple ID Value1 Value2 Value3 1 2 3 1 2 5 4 32 3 4 45 6 4 12 78 12
0
8471
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However, people are often confused as to whether an ONU can Work As a Router. In this blog post, we’ll explore What is ONU, What Is Router, ONU & Router’s main usage, and What is the difference between ONU and Router. Let’s take a closer look ! Part I. Meaning of...
0
8388
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can effortlessly switch the default language on Windows 10 without reinstalling. I'll walk you through it. First, let's disable language synchronization. With a Microsoft account, language settings sync across devices. To prevent any complications,...
0
8907
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers, it seems that the internal comparison operator "<=>" tries to promote arguments from unsigned to signed. This is as boiled down as I can make it. Here is my compilation command: g++-12 -std=c++20 -Wnarrowing bit_field.cpp Here is the code in...
1
8593
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows Update option using the Control Panel or Settings app; it automatically checks for updates and installs any it finds, whether you like it or not. For most users, this new feature is actually very convenient. If you want to control the update process,...
0
8663
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each protocol has its own unique characteristics and advantages, but as a user who is planning to build a smart home system, I am a bit confused by the choice of these technologies. I'm particularly interested in Zigbee because I've heard it does some...
0
7423
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing, and deployment—without human intervention. Imagine an AI that can take a project description, break it down, write the code, debug it, and then launch it, all on its own.... Now, this would greatly impact the work of software developers. The idea...
1
6218
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 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 a new presenter, Adolph Dupré who will be discussing some powerful techniques for using class modules. He will explain when you may want to use classes instead of User Defined Types (UDT). For example, to manage the data in unbound forms. Adolph will...
0
4396
by: adsilva | last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?
2
1799
bsmnconsultancy
by: bsmnconsultancy | last post by:
In today's digital era, a well-designed website is crucial for businesses looking to succeed. Whether you're a small business owner or a large corporation in Toronto, having a strong online presence can significantly impact your brand's success. BSMN Consultancy, a leader in Website Development in Toronto offers valuable insights into creating effective websites that not only look great but also perform exceptionally well. In this comprehensive...

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.