android中如何将Double类型转换成Integer类型

记录一下这个知识点,不然老是忘记

(Double.valueOf(positionDataResponse.acb21i).intValue()

来都来了不妨看一下源码吧

    public static Double valueOf(String string) throws NumberFormatException {
        return parseDouble(string);
    }
    public static double parseDouble(String string) throws NumberFormatException {
        return StringToReal.parseDouble(string);
    }
 public static double parseDouble(String s) {
        s = s.trim();
        int length = s.length();

        if (length == 0) {
            throw invalidReal(s, true);
        }

        // See if this could be a named double
        char last = s.charAt(length - 1);
        if (last == 'y' || last == 'N') {
            return parseName(s, true);
        }

        // See if it could be a hexadecimal representation.
        // We don't use startsWith because there might be a leading sign.
        if (s.indexOf("0x") != -1 || s.indexOf("0X") != -1) {
            return HexStringParser.parseDouble(s);
        }

        StringExponentPair info = initialParse(s, length, true);
        if (info.infinity || info.zero) {
            return info.specialValue();
        }
        double result = parseDblImpl(info.s, (int) info.e);
        if (Double.doubleToRawLongBits(result) == 0xffffffffffffffffL) {
            throw invalidReal(s, true);
        }
        return info.negative ? -result : result;
    }
//当你用Integer.valueof("2500.0")时就会出现
    private static NumberFormatException invalidReal(String s, boolean isDouble) {
        throw new NumberFormatException("Invalid " + (isDouble ? "double" : "float") + ": \"" + s + "\"");
    }

    原文作者:追梦小乐
    原文地址: https://www.jianshu.com/p/78c403444d63
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞