Extracting correct upper/lower tolerance

I am trying to extract upper/lower tolerance values for dimensions, but I don't seem to be getting the correct values for some tolerance types. For example, for the dimension 45° ± 15°:

I get the following:

myDimension.LowerToleranceValue.ToString --> -0.005°
myDimension.upperToleranceValue.ToString --> 15°

I think this is because when the original drawing was made in NX, 15° was first set and then the tolerance type was switched. Does anyone have code that would extract the correct tolerance values?

If the tolerance type is bilateral, only the "upper" tolerance value is used, the "lower" tolerance is ignored.