in src/main/java/com/ql/util/express/OperatorOfNumber.java [87:135]
public static Number transfer(Number value, Class<?> type, boolean isForce) {
if (isForce || !(value instanceof BigDecimal)) {
if (type.equals(byte.class) || type.equals(Byte.class)) {
return value.byteValue();
} else if (type.equals(short.class) || type.equals(Short.class)) {
return value.shortValue();
} else if (type.equals(int.class) || type.equals(Integer.class)) {
return value.intValue();
} else if (type.equals(long.class) || type.equals(Long.class)) {
return value.longValue();
} else if (type.equals(float.class) || type.equals(Float.class)) {
return value.floatValue();
} else if (type.equals(double.class) || type.equals(Double.class)) {
return value.doubleValue();
} else if (type.equals(BigDecimal.class)) {
return new BigDecimal(value.toString());
} else {
throw new RuntimeException("没有处理的数据类型:" + type.getName());
}
} else {
if (type.equals(byte.class) || type.equals(Byte.class)) {
if (((BigDecimal)value).scale() > 0) {
throw new RuntimeException("有小数位,不能转化为:" + type.getName());
}
return value.byteValue();
} else if (type.equals(short.class) || type.equals(Short.class)) {
if (((BigDecimal)value).scale() > 0) {
throw new RuntimeException("有小数位,不能转化为:" + type.getName());
}
return value.shortValue();
} else if (type.equals(int.class) || type.equals(Integer.class)) {
if (((BigDecimal)value).scale() > 0) {
throw new RuntimeException("有小数位,不能转化为:" + type.getName());
}
return value.intValue();
} else if (type.equals(long.class) || type.equals(Long.class)) {
if (((BigDecimal)value).scale() > 0) {
throw new RuntimeException("有小数位,不能转化为:" + type.getName());
}
return value.longValue();
} else if (type.equals(float.class) || type.equals(Float.class)) {
return value.floatValue();
} else if (type.equals(double.class) || type.equals(Double.class)) {
return value.doubleValue();
} else {
throw new RuntimeException("没有处理的数据类型:" + type.getName());
}
}
}