title: Why is scale subtracted when dividing BigInteger and added when multiplying?
body: <p>I have data that I'm trying to accurately and precisely manipulate with an ever-increasing denominator.</p>
  
  <p>Please assume that the numerator will always have a decimal.</p>
  
  <p>I see in the <a href="http://docs.oracle.com/javase/7/docs/api/java/math/BigDecimal.html#divide%28java.math.BigDecimal%29" rel="nofollow">docs</a> that <code>divide(BigDecimal divisor)</code> will actually reduce the scale which seems strange since as I understand the usage of "scale", number of digits past the decimal point, it should increase upon division.</p>
  
  <p>I also see in the <a href="http://docs.oracle.com/javase/7/docs/api/java/math/BigDecimal.html#multiply%28java.math.BigDecimal%29" rel="nofollow">docs</a> that <code>multiply(BigDecimal multiplicand)</code> increases the scale.  This also doesn't make sense, according to my understanding of scale, since the likelihood of two multiplied numbers needing digits beyond the decimal point goes down.</p>
  
  <p>Are these typos in the docs?</p>
  
  <p>If not, is my understanding of scale incorrect?</p>
  
  <p>If not, how can precision be maintained with an ever-increasing denominator that increases the number of digits past the decimal point?</p>