title: Double multiplied by 100 and then cast to long is giving wrong value
body: <p>I have the following code:</p>
  
  <pre><code>Double i=17.31;
  long j=(long) (i*100);
  System.out.println(j);
  </code></pre>
  
  <p>O/P : <code>1730   //Expected:1731</code></p>
  
  <pre><code>Double i=17.33;
  long j=(long) (i*100);
  System.out.println(j);
  </code></pre>
  
  <p>O/P : <code>1732    //Expected:1733</code></p>
  
  <pre><code>Double i=17.32;
  long j=(long) (i*100);
  System.out.println(j);
  </code></pre>
  
  <p>O/P : <code>1732    //Expected:1732{As expected}</code></p>
  
  <pre><code>Double i=15.33;
  long j=(long) (i*100);
  System.out.println(j);
  </code></pre>
  
  <p>O/P : <code>1533    //Expected:1533{as Expected}</code></p>
  
  <p>I have tried to Google but unable to find reason.I am sorry if the question is trivial. </p>