95 if(fValue.get_unit_key() && gunits->get_type(fValue.get_unit_key()) != gunits->get_type(_unit) ) {
96 double value = fValue.get_value();
97 double value_low = value-fError.get_value();
98 if(fAsymError) value_low = value-fErrorLow.get_value();
99 double value_high = value+fError.get_value();
100 if(fAsymError) value_high = value+fErrorHigh.get_value();
102 if(!fValue.set_unit(_unit))
return false;
103 fErrorLow.set_value(value_low);
104 fErrorLow.set_unit(_unit);
105 value_low = fErrorLow.get_value();
107 fErrorHigh.set_value(value_high);
108 fErrorHigh.set_unit(_unit);
109 value_high = fErrorHigh.get_value();
111 if(value_low>value_high) {
112 double tmp = value_high;
113 value_high = value_low;
116 value_low = fValue.get_value() - value_low;
117 value_high = value_high-fValue.get_value();
118 if(value_low != value_high) {
119 fError.set_value(-1);
120 fErrorLow.set_value(value_low);
121 fErrorHigh.set_value(value_high);
125 fError.set_value(value_low);
126 fErrorLow.set_value(-1);
127 fErrorHigh.set_value(-1);
132 if(!fValue.set_unit(_unit))
return false;
133 fError.set_unit(_unit);
134 fErrorLow.set_unit(_unit);
135 fErrorHigh.set_unit(_unit);