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;
        }

    }
}