public String getStringValue() {
		if (Double.isInfinite(value) || Double.isNaN(value)) {
			return "N/A";
		}
		String valueString;
		NumberFormat format = NumberFormat.getInstance();
		switch (type) {
		case DATATYPE_INTEGER:
			format.setMaximumFractionDigits(0);
			valueString = format.format(value);
			break;
		case DATATYPE_BYTE:
			double v = value;
			format.setMaximumFractionDigits(0);
			if (v > 1048576) {
				v /= 1048576;
				valueString = format.format(v) + " MB";				
			} else if (v > 1024) {
				v /= 1024;
				valueString = format.format(v) + " KB";	
			} else {
				valueString = format.format(v);	
			}
			break;
		case DATATYPE_PERCENT:
			format.setMinimumFractionDigits(2);
			format.setMaximumFractionDigits(2);
			valueString = format.format(value);
			break;
		default:
			format.setMinimumFractionDigits(3);
			format.setMaximumFractionDigits(3);
			valueString = format.format(value);					
		}
		return valueString;
	}