0
What am I doing wrong in Java Code Project 20 "Loan Calculator"?
I need to output the loan to pay after 3 month. Every month the loan is paid by 10% of the remaining amount. E.g. 20000 ->10% = 2000 --> 18000 to pay. My code: import java.util.Scanner; public class Program { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int amount = scanner.nextInt(); //your code goes here for(int x=0;x<3;x++){ amount = amount - amount /100*10; } System.out.println(amount); } } Now the problem is, test cases 1 and 2 come back positiv but the hidden test cases (3-5) are false or wrong and I don't know why. Thank you in advance :)
3 Respuestas
+ 4
I honestly can't explain why. but use this inside the for:
amount -= amount*0.1;
I suppose that with your way of doing it you lose a decimal at some point ... I can't think of anything else
+ 3
Maximilian Gamed
If you are interested you can read here about this issue:
https://pmi-sesni.medium.com/floating-point-rounding-error-in-java-5c160cb55315
The very short answer is converting binary numbers to fractions or fractions to binary numbers causes troubles.
0
I changed it to that and now it worked.
I had it like
amount =amount- amount*0.1;
Before but I got an error so I sticked with divide by 100 multiply by 10.
Thank you very much :)