public Object asType(Class<?> targetType) {
		if (Number.class == targetType || BigDecimal.class == targetType) {
			return this.nval;
		}
		if (BigInteger.class == targetType) {
			return BigInteger.valueOf(this.nval.longValue());
		}
		if (Double.class == targetType) {
			return this.nval();
		}
		if (Float.class == targetType) {
			return this.nval.floatValue();
		}
		if (Long.class == targetType) {
			return this.nval.longValue();
		}
		if (Object.class == targetType || String.class == targetType)
			return this.sval();
		throw new RuntimeException("Cannot convert '" + this + "' to type '" + targetType + "'.");
	}