I'm trying to deal with money (probably the wrong way as far as best practices but I thought it would work.. its simple, multiply everything by 100 and then use ints)
import java.util.Scanner;
public class PFiveFifteen {
public static void main(String[] args)
{
Scanner in =new Scanner(System.in);
int i = 0;
double principalIn;
int duration=0;
double interestRate=0;
int thisYear = 0;
int iInterestRate = 0;
int iPrincipalIn = 0;
System.out.println("Please input initial amount: ");
principalIn = in.nextDouble();
iPrincipalIn= (int) principalIn *100;
//System.out.println(principalIn*100);
System.out.println("Please input interest rate as a decimal: ");
interestRate = in.nextDouble()*100;
iInterestRate = (int) interestRate;
//System.out.println(interestRate*100);
System.out.println("Please input duration of investment in years: ");
duration = in.nextInt();
//System.out.println(duration);
while(duration > i ) {
if ( i == 0) {
//System.out.println("Preloop value" + (iInterestRate));
thisYear = (iPrincipalIn * iInterestRate)+ iPrincipalIn;
//System.out.println("Postloop value" + (iPrincipalIn));
i++;
System.out.println("The initial value is " + thisYear);
System.out.println("Year # one one: " +i);
}
else
thisYear = (thisYear*iInterestRate) + thisYear;
i++;
System.out.println(thisYear/10000);
System.out.println("year # " +i);
}
But I'm somehow getting negative numbers back in console
Please input initial amount:
10000
Please input interest rate as a decimal: 100.00
Please input duration of investment in years: 10
The initial value is 1411065408
Year # one one: 1 141106
year # 2 -119738
year # 3 -72104
year # 4 4904
year # 5 84261
year # 6 21917
year # 7 154073
year # 8 -145664
year # 9 63722
year # 10
What in the world is going on here? I could get if there where whacky decimals or soemthing ( even though I cast it all to ints) but what the dickens is taking all positive inputs to below zero??