double保留两位小数

Posted lifusen

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了double保留两位小数相关的知识,希望对你有一定的参考价值。

    public static String format(double dValue, int lScale) {
        // ////负数,则装化为正数后进行四舍五入
        boolean bFlag = false;
        if (dValue < 0) {
            bFlag = true;
            dValue = -dValue;
        }
        long lPrecision = 10000; // 精度值,为了避免double型出现偏差,增加校验位
        long l45Value = lPrecision / 2 - 1; // 四舍五入的判断值
        long lLength = 1; // 乘的数字
        for (int i = 0; i < lScale; i++) {
            lLength = lLength * 10; // 比如保留2位,乘以100
        }
        long lValue = (long) dValue; // 值的整数部分
        long lValue1 = (long) ((dValue - lValue) * lLength); // 乘以保留位数
        long lValue2 = (long) ((dValue - lValue) * lLength * lPrecision); //
        long lLastValue = lValue2 - (lValue2 / lPrecision) * lPrecision;
        if (lLastValue >= l45Value) {
            lValue1++;
        }
        dValue = lValue + (double) lValue1 / lLength; // 四舍五入后的值
        if (bFlag) {
            dValue = -dValue;
        }
        java.math.BigDecimal bd = new java.math.BigDecimal(dValue);
        bd = bd.setScale(lScale, java.math.BigDecimal.ROUND_HALF_UP);
        return bd.toString();
        // Replace by Huang Ye
        // double d = UtilOperation.Arith.round(dValue, lScale);
        // return String.valueOf(dValue);
    }

 

以上是关于double保留两位小数的主要内容,如果未能解决你的问题,请参考以下文章

java中double保留两位小数

使double保留两位小数的多方法 java保留两位小数

话说double 是保留多少位小数.

Android(java)开发之将double类型,强制保留到小数点后两位解决方法。

Java 保留两位小数填坑

java,中双精度double控制保留两位小数,js控制两位小数