def __init__(self, value: (str, int, float), precision: int = <NUM_LIT:2>):
suffix_keys = [key for key in _suffix_lookup.keys() if key != '<STR_LIT>']<EOL>self.unit = None<EOL>if isinstance(value, str):<EOL><INDENT>new_value = '<STR_LIT>'<EOL>v_index = <NUM_LIT:0><EOL>for c in value:<EOL><INDENT>if (c in digits) or (c in ['<STR_LIT:.>', '<STR_LIT:->']) or (c in suffix_keys):<EOL><INDENT>new_value += c<EOL>v_index += <NUM_LIT:1><EOL><DEDENT>else:<EOL><INDENT>break<EOL><DEDENT><DEDENT>if len(value) >= v_index:<EOL><INDENT>self.unit = value[v_index:]<EOL><DEDENT>self.eng_num = EngNumber(new_value, precision)<EOL><DEDENT>else:<EOL><INDENT>self.eng_num = EngNumber(value, precision)<EOL><DEDENT>
Initialize engineering with units
:param value: the desired value in the form of a string, int, or float
:param precision: the number of decimal places