Reputation: 26085
I'm trying to divide an integer by an integer in Java and return a long result. I tried the following, but I keep getting "0".
System.out.println(Long.valueOf(5) / Long.valueOf(18));
System.out.println((long)5 / (long)18);
Upvotes: 5
Views: 11787
Reputation: 8306
It seems everyone has given the right answer, but you should note you can also do
System.out.println(5 / 18f)
Where f makes it a float
System.out.println(5 / 18d)
where d makes it a double
Upvotes: 6
Reputation: 14678
Longs are still integral, you need a type that can handle decimals, use either float
or double
.
System.out.println(5.0 / 18.0);
Upvotes: 4
Reputation: 22152
Long
is for "long" integer numbers. You should use float
or double
instead.
Upvotes: 5
Reputation: 726569
You don't need a long, you need a double.
System.out.println(5 / 18.0);
or
System.out.println(5.0 / 18);
Of course this will work too:
System.out.println(5.0 / 18.0);
Upvotes: 7