美文网首页Android深入
java double/float转BigDecimal,精度问

java double/float转BigDecimal,精度问

作者: QianRay | 来源:发表于2018-10-15 17:06 被阅读0次

    double/float 转BigDecimal,会有精度问题。
    所以需要转String类型,然后再转BigDecimal

    /**
         * object -> BigDecimal 转换.
         * @param value
         * @return
         */
        public static BigDecimal getBigDecimal(Object value) {
            BigDecimal ret = null;
            if (value != null) {
                if (value instanceof BigDecimal) {
                    ret = (BigDecimal) value;
                } else if (value instanceof String) {
                    ret = new BigDecimal((String) value);
                } else if (value instanceof BigInteger) {
                    ret = new BigDecimal((BigInteger) value);
                } else if (value instanceof Number) {
                    //转成String类型,然后new
                    ret = new BigDecimal(((Number) value).toString());
                } else {
                    throw new ClassCastException("Not possible to coerce [" + value + "] from class " 
                            + value.getClass() + " into a BigDecimal.");
                }
            }
            return ret;
        }
    
    

    相关文章

      网友评论

        本文标题:java double/float转BigDecimal,精度问

        本文链接:https://www.haomeiwen.com/subject/mfbxzftx.html