title: Common strategies to deal with rounding errors in currency-intensive soft?
body: <p>What is your advice on:</p>
  
  <ol>
  <li><strong>compensation</strong> of accumulated error in bulk math operations on collections of Money objects. How is this implemented in your production code for your locale?</li>
  <li><strong>theory</strong> behind rounding in accountancy.</li>
  <li>any <strong>literature</strong> on topic.</li>
  </ol>
  
  <p>I currently read <a href="https://rads.stackoverflow.com/amzn/click/com/0321127420" rel="nofollow noreferrer" rel="nofollow noreferrer">Fowler</a>. He mentions Money type, it's typcal structure (int, long, BigDecimal), but says nothing on strategies.</p>
  
  <p>Older posts on money-rounding (<a href="https://stackoverflow.com/questions/522855/how-do-i-round-up-currency-values-in-java">here</a>, and <a href="https://stackoverflow.com/questions/2511188/decimal-rounding-strategies-in-enterprise-applications">here</a>) do not provide a details and formality I need.</p>
  
  <p>Thoughts I found in the inet relate to "Round half even" as the best way to balance error.</p>
  
  <p>Thanks for help.</p>