I am as green as can be w/code, and have been kind of thrown in the fire with an assignment from school. It has been turned in, but I would like to better understand what issues I am running into. When I enter an integer for tax rate it loops output. When a decimal is entered this:
java.lang.NumberFormatException: For input string: "0.5" at java.lang.NumberFormatException.forInputString(NumberFormatException. java:48) at java.lang.Integer.parseInt(Integer.java:477) at java.lang.Integer.parseInt(Integer.java:518) at Project.AccountIn(Project3.java:63) at Project.appMain(Project3.java:40) at Project3.main(Project3.java:17)
Sorry for the length but here is the problematic code: (A BIG THANKS!!)
many languages distinguish between integers (numbers with no fractional part) and floating point decimal numbers (numbers WITH a fractional part, although the fractional part may be zero - 5.0, for example). In fact, there are even different types for each of those, depending on how big a number you need to store vs. how much memory they use
I don't know the reason why they do this, but I assume it has to do with memory from back when memory was EXPENSIVE (my father talked about a computer Bell Labs bought where memory was $1 million for 1 megabyte).
In any case, as Henry has pointed out, you are using the "Integer" method to parse a string. Since it is expecting an integer to be represented in the string, it doesn't know how to handle a decimal point. Just like it wouldn't know how to handle "fred". If you want to parse a floating point, you need to use a different class than the Integer and it's parstInt() method.
There are only two hard things in computer science: cache invalidation, naming things, and off-by-one errors