Java double value not getting calculated properly

I have the simple following code

public class Test {
public static void main(String args[])
{
    double d=11111111111111111.0 * 10.0;
    System.out.println((long)(d));
}

}

Here I am getting output as 1111111111111111120 rather than 111111111111111110. please tell me why this is happening and how to overcome this?