package com.taobao.tddl.rule.enumerator; import java.math.BigDecimal; public class EnumeratorUtils { /** * 将BigDecimal转换为long或者double * * @param big * @return */ public static Comparable<?> toPrimaryValue(Comparable<?> comp) { if (comp instanceof BigDecimal) { BigDecimal big = (BigDecimal) comp; int scale = big.scale(); if (scale == 0) { // long int try { return big.longValueExact(); } catch (ArithmeticException e) { return big; } } else { // double float return big.doubleValue(); } } else { return comp; } } }