public double getDouble() {
		double i = 0D;
		byte b = this.value[this.index++];
		switch (b) {
		case XsonConst.DOUBLE1:
			i = ByteUtils.byteToDouble(this.value, this.index, 1);
			this.incrementIndex(1);
			break;
		case XsonConst.DOUBLE2:
			i = ByteUtils.byteToDouble(this.value, this.index, 2);
			this.incrementIndex(2);
			break;
		case XsonConst.DOUBLE3:
			i = ByteUtils.byteToDouble(this.value, this.index, 3);
			this.incrementIndex(3);
			break;
		case XsonConst.DOUBLE4:
			i = ByteUtils.byteToDouble(this.value, this.index, 4);
			this.incrementIndex(4);
			break;
		case XsonConst.DOUBLE5:
			i = ByteUtils.byteToDouble(this.value, this.index, 5);
			this.incrementIndex(5);
			break;
		case XsonConst.DOUBLE6:
			i = ByteUtils.byteToDouble(this.value, this.index, 6);
			this.incrementIndex(6);
			break;
		case XsonConst.DOUBLE7:
			i = ByteUtils.byteToDouble(this.value, this.index, 7);
			this.incrementIndex(7);
			break;
		case XsonConst.DOUBLE:
			i = ByteUtils.byteToDouble(this.value, this.index, 8);
			this.incrementIndex(8);
			break;
		default:
			throw new XsonDeserializerException("Illegal double mark '"
					+ Integer.toHexString(b & 0xFF) + "' at index "
					+ this.index);
		}
		return i;
	}