Win a copy of Think Java: How to Think Like a Computer Scientist this week in the Java in General forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

Return a true integer

 
Steve Dyke
Ranch Hand
Posts: 1619
1
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
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
Posts: 11343
Java Mac Safari
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
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 ]
 
Campbell Ritchie
Sheriff
Posts: 48917
58
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
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.
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic