title: Upchanging (fictional) money
body: <p>In a game which uses the age-old monetary system of Copper, Silver, Gold, and Platinum, where 100 units of each denomination equals 1 unit of the next highest denomination, is this an acceptable means of 'sorting' or 'up-changing' the values upon input?</p>
  
  <pre><code>
  public struct Coinage
  {
      private int _copper;
      private int _silver;
      private int _gold;
      private int _platinum;
  
      public int Copper
      {
          get { return _copper; }
          set
          {
              int val = value;
              while (val > 99) { val -= 100; Silver ++; }
              _copper += val;
          }
      }
      public int Silver 
      { 
          get { return _silver; } 
          set 
          {
              int val = value;
              while (val > 99) { val -= 100; Gold ++; }
              _silver += val;
          } 
      }
      public int Gold
      {
          get { return _gold; }
          set
          {
              int val = value;
              while (val > 99) { val -= 100; Platinum ++; }
              _gold += val;
          }
      }
      public int Platinum { get { return _platinum; } set { _platinum = value; } }
  }
  </code></pre>
  
  <p>So that however much of any denomination (lower than Platinum) I input, it will correctly change the money for me? Is it a bad idea to chain up the properties' set methods like this? Is there a more efficient way to do this in a single method?</p>
  
  <p>Thanks.</p>