title: Encoding/decoding CGFloat on 32- vs 64-bit
body: <p>I'm converting an app to work in 64-bit. The Apple docs state that the <code>CGFloat</code> type is a <code>float</code> on 32-bit and a <code>double</code> on 64-bit.</p>
  
  <p>If that is so, how do you handle encoding/decoding of the value? For instance, if creating an <code>NSNumber</code> from a <code>CGFloat</code>, should I use the <code>-numberWithFloat:</code> or <code>-numberWithDouble:</code> method of NSNumber? The same question applies to the <code>NSCoder</code> and <code>NSKeyedArchiver</code> methods <code>-encodeFloat:forKey:</code> and <code>-encodeDouble:forKey:</code>.</p>
  
  <p>Do I have to write a conditional macro so that <code>-numberWithFloat:</code> is called on 32-bit and <code>-numberWithDouble:</code> on 64-bit?</p>
  
  <p>What happens if a user running the 64-bit version of the app saves a file where these values are encoded as doubles and the file is opened/unarchived on a 32-bit system?</p>
  
  <p>All the methods in my app that use <code>CGFloats</code> are unlikely to ever need the precision level of a <code>double</code>, so should I even be worrying about this?</p>