Translate by metric string
You need to parse the string to work out how to calculate the offset to use.

If you say that one blender unit equals one metre then :

offset = '99cm'

if offset[-2:] == 'cm':
    true_offset = float(offset[:-2]) * 0.01
elif offset[-2:] == 'mm':
    true_offset = float(offset[:-2]) * 0.001
elif offset[-1:] == 'm':
    true_offset = float(offset[:-1])


offset[-2:] extracts the last two characters, while [:-2] gets everything execpt the last two, which is the number. A more complete solution would scan the string for characters and digits to extract the two parts.

Depending on where the measurement data is coming from, you may also need to account for thousand seperators and spaces.

If you want to support imperial measurements then you will also want to take into account imperial suffixes and possibly do imperial to metric conversions.

You may also want to take into account the scenes unit settings. You can get these settings from the scene

scn = bpy.context.scene

scn_system = scn.unit_settings.system # NONE METRIC or IMPERIAL
scn_scale = scn.unit_settings.scale_length
true_offset = true_offset * scn_scale