• 09-15-2012, 12:38 AM
xemkruz2012
This is my assignement, my professor wnats me to output 4500.0 in interest, but I'm getting is 0.

All codes are below,

public class Interest {

public static void main(String[] args) {
//declare variables
double loan=5000, interest=0.0;
int years=15, rate=6;

//calculations

interest = loan * (rate/100) * years;

//output

System.out.println(interest);

}
}

THIS IS THE ASSIGNMENT PAPER
Assignment 2 (10 points): Calculating Interest
Our goal is to calculate the interest given the loan amount, rate, and years to be taken out.
Your program should have the following:
 Make the name of the project Interest
 4 comment lines that state the purpose of the program, author, date and JDK
used. (1 point)
 Include 4 variables for the amount of loan, rate, years, and interest. The amount
of loan and interest variables are decimal numbers. The years and rate
variables should be integers. Make up your own meaningful correctly-formed
variable names for these 4 items and declare them appropriately as an int or
double. (4 points)
 Set the loan amount to be 5000. Set interest rate to be 6. Set years to be 15.
 With an assignment statement, have the computer calculate the interest using the
following formula: (3 points)

interest = amount * (rate/100) * years
 Have the computer display the amount of loan, rate, years and the interest that you
calculated. You should print this on several lines. (2 points)
 Compile your program until you have no compilation errors. When you run this
application, you should get an answer for interest as 4500.0 If you are getting an
answer of 0, THINK!! Don't change the variable types. Don't worry about it
appearing with dollars and cents since formatting has not been covered yet.
• 09-15-2012, 12:46 AM
In the expression
Code:

`(rate/100)`
both rate and 100 are integers so it's an integer operation also. Which means instead of 0.06 you get 0. And anything multiplied by 0 is 0.

To solve this you can do several things.
- You can make rate be of a floating-point number type in the first place.
- You can write 100 as a floating-point number.
- You can cast either rate or 100 in the (rate/100) expression to a floating-point number.
• 09-15-2012, 03:31 AM
xemkruz2012
Quote:

In the expression
Code:

`(rate/100)`
both rate and 100 are integers so it's an integer operation also. Which means instead of 0.06 you get 0. And anything multiplied by 0 is 0.

To solve this you can do several things.
- You can make rate be of a floating-point number type in the first place.
- You can write 100 as a floating-point number.
- You can cast either rate or 100 in the (rate/100) expression to a floating-point number.

I tried making rate floating as "float rate = 6F;", ans comes out like 4499.9999999

How do I make 100 a floating point?
• 09-15-2012, 03:54 AM
Fubarable
For one, don't use floats when you can use double since the accuracy is much greater with double with minimal cost. For another, please understand that no programming language that runs on a digital computer will be able to represent floating point type values with exact precision. Instead you need to accept a very close approximation. This is not a fault of Java but rather a limitation of digital computers in general. What many do is to format our values to the significant digit desired when converting to String for display.
• 09-15-2012, 05:04 AM
xemkruz2012