Emanuel Mensa wrote:but in my program, when i enter an upperlimit of say 10 which totals to 55. i expect the average to be 5.5. but my program returns 5.0.
That's because
number is an
int, which can only hold integer values (not fractional values such as 5.5).
Lines 34 and 35 are wrong. Don't store the result in
number. Remove those lines, just return
number divided by
upperBound there. Since
upperBound is a
double, the result will be a
double and the calculation will be correct.
You're also doing things wrong with
static. When a variable is
static, it means that only one copy of it exists which is shared by all instances of a class (see
Understanding Instance and Class Members).
You're first setting
upperBound in line 46, then you're passing it to the constructor of
SumAndAverage in line 47, where you're setting it again (line 17), as if it is an instance variable instead of a class variable. Then you're again passing it to the
calc method (line 49). The
calc method doesn't need to get
upperBound as a parameter - it can access the member variable (line 5) directly.