text: var conversions = {
      // length
      'px': {
          'px': 1,
          'cm': 96.0/2.54,
          'mm': 96.0/25.4,
          'in': 96,
          'pt': 96.0/72.0,
          'pc': 16
      },
      'cm': {
          'px': 2.54/96.0,
          'cm': 1,
          'mm': 0.1,
          'in': 2.54,
          'pt': 2.54/72.0,
          'pc': 2.54/6.0
      },
      'mm': {
          'px': 25.4/96.0,
          'cm': 10,
          'mm': 1,
          'in': 25.4,
          'pt': 25.4/72.0,
          'pc': 25.4/6.0
      },
      'in': {
          'px': 1.0/96.0,
          'cm': 1.0/2.54,
          'mm': 1.0/25.4,
          'in': 1,
          'pt': 1.0/72.0,
          'pc': 1.0/6.0
      },
      'pt': {
          'px': 0.75,
          'cm': 72.0/2.54,
          'mm': 72.0/25.4,
          'in': 72,
          'pt': 1,
          'pc': 12
      },
      'pc': {
          'px': 6.0/96.0,
          'cm': 6.0/2.54,
          'mm': 6.0/25.4,
          'in': 6,
          'pt': 6.0/72.0,
          'pc': 1
      },
      // angle
      'deg': {
          'deg': 1,
          'grad': 0.9,
          'rad': 180/Math.PI,
          'turn': 360
      },
      'grad': {
          'deg': 400/360,
          'grad': 1,
          'rad': 200/Math.PI,
          'turn': 400
      },
      'rad': {
          'deg': Math.PI/180,
          'grad': Math.PI/200,
          'rad': 1,
          'turn': Math.PI*2
      },
      'turn': {
          'deg': 1/360,
          'grad': 1/400,
          'rad': 0.5/Math.PI,
          'turn': 1
      },
      // time
      's': {
          's': 1,
          'ms': 1/1000
      },
      'ms': {
          's': 1000,
          'ms': 1
      },
      // frequency
      'Hz': {
          'Hz': 1,
          'kHz': 1000
      },
      'kHz': {
          'Hz': 1/1000,
          'kHz': 1
      },
      // resolution
      'dpi': {
          'dpi': 1,
          'dpcm': 1.0/2.54,
          'dppx': 1/96
      },
      'dpcm': {
          'dpi': 2.54,
          'dpcm': 1,
          'dppx': 2.54/96.0
      },
      'dppx': {
          'dpi': 96,
          'dpcm': 96.0/2.54,
          'dppx': 1
      }
  };
  
  module.exports = function (value, sourceUnit, targetUnit, precision) {
      if (!conversions.hasOwnProperty(targetUnit))
          throw new Error("Cannot convert to " + targetUnit);
  
      if (!conversions[targetUnit].hasOwnProperty(sourceUnit))
          throw new Error("Cannot convert from " + sourceUnit + " to " + targetUnit);
  
      precision = Math.pow(10, parseInt(precision) || 5);
      return Math.round((conversions[targetUnit][sourceUnit] * value) * precision) / precision;
  };
  