Organizational Research By

Surprising Reserch Topic

why double width 50 110000 the output is 0 000000000000000


why double width 50 110000 the output is 0 000000000000000  using -'java'

This is my code :

double width = 50/110000;
System.out.println("width ori is "+width );


And the output is: 0.00000000000

What's wrong ? the expected output has to be 4.5454545454545455E-4

Any body can explain to me why?
    

asked Sep 22, 2015 by sanjaypal1983
0 votes
12 views



Related Hot Questions

1 Answer

0 votes

Because you're dividing two integers, so it will only take the integer part (integer division).

Dividing integers in a computer program requires special care. Some programming languages, treat integer division (i.e by giving the integer quotient as the answer). So the answer is an integer.

Examples :

In real life                  In Java

4/3  = 1.33333                4/3  = 1
25/12 = 2.083333              25/12 = 2
9/2 = 4.5                     9/2 = 4
50/110000 = 0.000454545       50/110000 = 0

You can cast one of the number (or both but it's actually useless) to double to avoid that :

double width = (double)50/110000;
double width = 50d/110000;
double width = 50.0/110000;
answered Sep 22, 2015 by mannumits1

...