title: BigDecimal floor rounding goes wrong
body: <p>I recently ask a question about weird java double floor rounding, and got answers to use BigDecimals instead, so tried the following code:</p>
  
  <pre><code>BigDecimal velocity = new BigDecimal(-0.07);
  BigDecimal afterMultiplyingBy200 = velocity.multiply( new BigDecimal(200.0) );
  BigDecimal floored = afterMultiplyingBy200.setScale(0, RoundingMode.FLOOR);
  System.out.println("After multiplication " + afterMultiplyingBy200);
  System.out.println("floored value is " + floored);
  </code></pre>
  
  <p>And I'm getting following results</p>
  
  <pre><code>After multiplication -14.000000000000001332267629550187848508358001708984375000
  floored value is -15
  </code></pre>
  
  <p>It seems that even using BigDecimal I can't get correct value for multiplying -0.07 by 200, is there anything that I can do to get exactly -14.0?</p>