title: Velocity Data Types and conversions
body: <p>I'm working on a project that has a lot to do with an object's position and velocity. While working on the velocity for the object I'm able to convert to/from M/M, F/M, M/H, Km/H, Knots, and Mach. Now I'm noticing a lot of code replication taking place and I'm starting to wonder if it would be useful for me to go ahead and create new data types similar to double, float, or int. If so I plan to call them something like mpm, fpm, kmph, etc... The reason this comes up is due to the conversions and while I can create a static class or something and just put in a bunch of methods to do the conversions for me, I was wondering if it wouldn't be better organized in data types.</p>
  
  <p>Something Like:
      <pre>
      mpm Speed = 45;
      knot Knots = Speed.ToKnot();
      double Temperature = 32;
      // Mach is loosely dependent on temperature or pressure.
      mach SoundSpeed = Speed.ToMach(Temperature);
      </pre></p>
  
  <p>Now am I just talking about a model here or something? Kinda wanting to avoid the whole <code>mpm Speed = new mpm{MetersPerMinute = 46,};</code></p>
  
  <p>Questions:</p>
  
  <ul>
  <li>Is there a better way of approaching this while still allowing it to be extremely portable?</li>
  <li>If this is possible and reasonable, how would I implement it?</li>
  <li>Am I correct when I call things like int, float, and double "data types"?</li>
  </ul>