public static double Unit( [ExcelArgument("Value")] double value, [ExcelArgument("Previous unit", Name = "previous_Unit")] string _prevUnit, [ExcelArgument("New unit", Name = "new_Unit")] string _newUnit) { double prevUnit; double newUnit; if (ForceUnits.TryGetValue(_prevUnit, out prevUnit) && ForceUnits.TryGetValue(_newUnit, out newUnit)) { return(value * newUnit / prevUnit); } else if (LengthUnits.TryGetValue(_prevUnit, out prevUnit) && LengthUnits.TryGetValue(_newUnit, out newUnit)) { return(value * newUnit / prevUnit); } else if (AreaUnits.TryGetValue(_prevUnit, out prevUnit) && AreaUnits.TryGetValue(_newUnit, out newUnit)) { return(value * newUnit / prevUnit); } else if (MomentUnits.TryGetValue(_prevUnit, out prevUnit) && MomentUnits.TryGetValue(_newUnit, out newUnit)) { return(value * newUnit / prevUnit); } else if (PressureUnits.TryGetValue(_prevUnit, out prevUnit) && PressureUnits.TryGetValue(_newUnit, out newUnit)) { return(value * newUnit / prevUnit); } else { return(double.NaN); } }