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 Return a true integer Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Java » Beginning Java
Bookmark "Return a true integer" Watch "Return a true integer" New topic
Author

Return a true integer

Steve Dyke
Ranch Hand

Joined: Nov 16, 2004
Posts: 1413
dResults2[3] is 4.000

I am tying to use to get 4 to use in a loop:

int x = Integer.parseInt(dResults2[3]);

What am I doing wrong?
marc weber
Sheriff

Joined: Aug 31, 2004
Posts: 11343

The parseInt method takes a String argument. What is the type of dResults2[3]? If it's a primitive floating point (float or double), then just use an explicit cast (which will truncate)...

int x = (int)dResults2[3];
[ December 27, 2007: Message edited by: marc weber ]

"We're kind of on the level of crossword puzzle writers... And no one ever goes to them and gives them an award." ~Joe Strummer
sscce.org
Campbell Ritchie
Sheriff

Joined: Oct 13, 2005
Posts: 38353
    
  23
Having seen Marc Weber's post:
You mean

x = (int)Double.parseDouble(dResult2[3]);

presumably?

Is there any risk that Double.parseDouble("4.000") could return 3.99999999999999999? I which case you will get an out-by-one error when it casts to 3. Just as you don't use floating-point arithmetic for money, you don't want to use it in "for" loops.
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: Return a true integer