wood burning stoves 2.0*
The moose likes Beginning Java and the fly likes converting a double to an int Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Java » Beginning Java
Bookmark "converting a double to an int" Watch "converting a double to an int" New topic
Author

converting a double to an int

Brandi Love
Ranch Hand

Joined: Sep 19, 2003
Posts: 133
If I'm converting a double to an integer, does it just take off all the numbers beyond the decimal point? (for example if I converted 1.4235 to an integer, would I just get a result of 1)
Wayne L Johnson
Ranch Hand

Joined: Sep 03, 2003
Posts: 399
You are correct. It essentially does a truncate, not a round. So if you convert 1.999 to an int you'd still end up with 1. And you have to explicitly cast it or you'll get a compile error.
double dd = 1.995;
int ii = (int)dd; // correct
int jj = dd; // compile error
In the java.lang.Math class are several convenience methods for doing things like "floor()", "trunc()", "round()", etc., if you want to do something else.
Giselle Dazzi
Ranch Hand

Joined: Apr 20, 2003
Posts: 168
Hi, I also need to truncate a number, and I went and looked under java.lang.Math like you said and I cant find a trunc() method.
I see round, floor, ceil, but no trunc(), what do you guys have been using to truncate a double value ?


Giselle Dazzi<br />SCJP 1.4
Wayne L Johnson
Ranch Hand

Joined: Sep 03, 2003
Posts: 399
That's what I get for quickly throwing up an answer w/out double-checking with the documentation. My bad: there is no "trunc()" method.
If you want to truncate a "double" value there are a couple of options:

This gives you the output:
DD1: 1234.5678
II1: 1234
DD2: 1234.0
DD2: 1234.56
So you can truncate and store the result as an "int" (such as "ii1"), or store the result as a double (such as "dd2"). Or you can truncate to two digits (such as in "dd3").
Because of the way in which real numbers are stored, you might truncate and instead of coming out with "1234.56" as here, you could get "1234.55999999999999". If you want to ensure you what gets printed out only has a certain number of digits, use the "java.text.DecimalFormat" class to do your formatting.
[ November 10, 2003: Message edited by: Wayne L Johnson ]
David Crossett
Ranch Hand

Joined: Feb 05, 2003
Posts: 102
You can also use the java.text.DecimalFormat class to 'truncate' a double. Look it up and if you need an example, say so and I'll post some.


David Crossett
-nothing important to say, but learnin' plenty-
 
 
subject: converting a double to an int