public String getValueText(byte[] bytes, int offset) {
		try {
			long value= unscaledLongValue(bytes, offset);
			IntegerAttributeType type=(IntegerAttributeType)getAttributeType();
			IntegerValueState state= getState(value);
			if(state!=null) return state.getName();
			IntegerValueRange range= type.getRange();
			if(range==null || value<range.getMinimum() || value>range.getMaximum()) {
				return " <<ungültiger Wert (" + value + ")>>";
			}
			double conversionFactor= range.getConversionFactor();
			if(conversionFactor == 1) return String.valueOf(value);
			else {
				int precision= 0;
				synchronized(_integerNumberFormat) {
					String formatted= _precisionTestNumberFormat.format(conversionFactor);
					int kommaPosition= formatted.lastIndexOf(',');
					if(kommaPosition>=0) precision= formatted.length() - kommaPosition - 1;
					_integerNumberFormat.setMinimumFractionDigits(precision);
					_integerNumberFormat.setMaximumFractionDigits(precision);
					return _integerNumberFormat.format(value * range.getConversionFactor());
				}
			}
		}
		catch(Exception e) {
			return "<<" + e.getMessage() + ">>";
		}
	}