title: Storing and mapping currency exchange rates
body: <p>I need to store on SQLServer 2008 R2 currency exchange rate data.</p>
  
  <p>The application making use of this data is developed in C#. The column holding the currency exchange rate will be required to store conversions both ways-- meaning, I'd rather have a fixed precision but a variable scale.</p>
  
  <p>What Data type should I choose on SQL Server that can be mapped to C# avoiding any data loss? I'm looking at MSDN supplied <a href="http://msdn.microsoft.com/en-us/library/bb386947.aspx#BehaviorMatrix" rel="noreferrer">mappings matrix</a> and I'm can't seem to find anything that I can safely handle.</p>
  
  <ul>
  <li>Float(53) could be a possibility, but
  floats are approximate values.</li>
  <li>Money are only accurate to the ten
  thousandth of the unit</li>
  </ul>
  
  <p>I'm left with Decimal. However these offer fixed scales. And that's where I'm stumped:</p>
  
  <p>If I'm required to store a number like <code>0.0104182</code> but also <code>123.673</code>, I've established a precision of 10 as my requirement. But how should I set a scale that can fully accommodate this precision? </p>