File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
http://aspose.com/file-tools
The moose likes Beginning Java and the fly likes problematic run-time errors Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Java » Beginning Java
Bookmark "problematic run-time errors" Watch "problematic run-time errors" New topic
Author

problematic run-time errors

Matt Riddoch
Greenhorn

Joined: Nov 08, 2008
Posts: 2
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!!)

[edit]Add code tags. CR[/edit]
[ November 09, 2008: Message edited by: Campbell Ritchie ]
Henry Wong
author
Sheriff

Joined: Sep 28, 2004
Posts: 18120
    
  39



The Integer class is for integers -- which is for whole numbers. "1.5" is not a whole number, hence, not an integer.

Henry
[ November 08, 2008: Message edited by: Henry Wong ]

Books: Java Threads, 3rd Edition, Jini in a Nutshell, and Java Gems (contributor)
Rob Spoor
Sheriff

Joined: Oct 27, 2005
Posts: 19544
    
  16

And please Use Code Tags.


SCJP 1.4 - SCJP 6 - SCWCD 5 - OCEEJBD 6
How To Ask Questions How To Answer Questions
fred rosenberger
lowercase baba
Bartender

Joined: Oct 02, 2003
Posts: 10916
    
  12

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
Campbell Ritchie
Sheriff

Joined: Oct 13, 2005
Posts: 36514
    
  16
I always thought it is because it means you can store different numbers in different formats, eg
  • Two's complement-Java int, long, short, byte.
  • Unsigned binary-Java char, C++ unsigned int, C# uint
  • IEEE754-Java float and double
  • Something else, eg C# decimal.
  • And that means that arithmetic on different kinds of numbers can be done differently with different precision, etc.
    Campbell Ritchie
    Sheriff

    Joined: Oct 13, 2005
    Posts: 36514
        
      16
    Originally posted by Rob Prime:
    And please Use Code Tags.
    I have added the tags, so you can see how much better the code looks. By the way: you are using an unusual indentation convention: your code should start farther to the right than the {}.

    And (sorry I hadn't noticed it's your first post) welcome to JavaRanch
    Matt Riddoch
    Greenhorn

    Joined: Nov 08, 2008
    Posts: 2
    Wow, thanks for the outpouring of help!! I am educating myself on the code tag issue, as I hope to become a regular contributor. I will crunch some of this info and hope for some better results!
    Campbell Ritchie
    Sheriff

    Joined: Oct 13, 2005
    Posts: 36514
        
      16
    You are welcome
     
    I agree. Here's the link: http://aspose.com/file-tools
     
    subject: problematic run-time errors
     
    Similar Threads
    problem with parse int method
    urgent help needed for assignment
    OVERWRITING OBJECTS IN AN ARRAY LIST HELP PLEASE
    my last question for this program.
    how to accept strings and values in invoice textfields