您的位置:

详解BigDecimal取整数

一、bigdecimal取整数部分

import java.math.BigDecimal;

public class BigDecimalTest {
    public static void main(String[] args) {
        BigDecimal bd1 = new BigDecimal("123.456");
        int integerPart = bd1.intValue();
        System.out.println("整数部分为:" + integerPart);
    }
}

使用BigDecimal类的intValue()方法可以直接取得该数的整数部分。上述代码中,将123.456转换成BigDecimal类型的对象bd1后,使用intValue()方法获得整数部分的值123。

二、bigdecimal保留整数位

import java.math.BigDecimal;

public class BigDecimalTest {
    public static void main(String[] args) {
        BigDecimal bd1 = new BigDecimal("123.456");
        BigDecimal bd2 = bd1.setScale(2, BigDecimal.ROUND_HALF_UP);
        System.out.println("保留两位小数后为:" + bd2);
    }
}

使用BigDecimal类的setScale()方法可以设置BigDecimal的精度,并且可以设置四舍五入的方式。上述代码中,设置精度为2,四舍五入方式为ROUND_HALF_UP,即四舍五入,取得保留两位小数的结果123.46。

三、bigdecimal取整数位

import java.math.BigDecimal;

public class BigDecimalTest {
    public static void main(String[] args) {
        BigDecimal bd1 = new BigDecimal("123.456");
        BigDecimal bd2 = bd1.setScale(0, BigDecimal.ROUND_HALF_UP);
        System.out.println("取整数位后为:" + bd2);
    }
}

同样是使用setScale()方法,将精度设置为0,即可获得BigDecimal对象的整数位。

四、bigdecimal向上取整数的吗?

import java.math.BigDecimal;

public class BigDecimalTest {
    public static void main(String[] args) {
        BigDecimal bd1 = new BigDecimal("123.456");
        BigDecimal bd2 = bd1.setScale(0, BigDecimal.ROUND_UP);
        System.out.println("向上取整后为:" + bd2);
    }
}

使用setScale()方法,并设置为ROUND_UP可以实现BigDecimal的向上取整。在上述代码中,将BigDecimal对象123.456向上取整后,结果为124。

五、bigdecimal取整数和小数部分

import java.math.BigDecimal;

public class BigDecimalTest {
    public static void main(String[] args) {
        BigDecimal bd1 = new BigDecimal("123.456");
        int integerPart = bd1.intValue();
        BigDecimal bd2 = bd1.subtract(new BigDecimal(integerPart));
        System.out.println("整数部分为:" + integerPart);
        System.out.println("小数部分为:" + bd2);
    }
}

将BigDecimal对象的整数部分和小数部分分别计算出来,可以使用intValue()方法获得整数部分的值,而小数部分则是将原数减去整数部分。上述代码中,将BigDecimal对象123.456的整数部分计算得到123,小数部分计算得到0.456。

六、bigdecimal向下取整

import java.math.BigDecimal;

public class BigDecimalTest {
    public static void main(String[] args) {
        BigDecimal bd1 = new BigDecimal("123.456");
        BigDecimal bd2 = bd1.setScale(0, BigDecimal.ROUND_DOWN);
        System.out.println("向下取整后为:" + bd2);
    }
}

同样是使用setScale()方法,将设置为ROUND_DOWN即可实现BigDecimal的向下取整。在上述代码中,将BigDecimal对象123.456向下取整后,结果为123。

七、bigdecimal取整数不四舍五入

import java.math.BigDecimal;

public class BigDecimalTest {
    public static void main(String[] args) {
        BigDecimal bd1 = new BigDecimal("123.456");
        BigDecimal bd2 = bd1.setScale(0, BigDecimal.ROUND_DOWN);
        System.out.println("不四舍五入的结果为:" + bd2);
    }
}

使用setScale()方法,将设置为ROUND_DOWN即可实现BigDecimal的不四舍五入取整。在上述代码中,将BigDecimal对象123.456不四舍五入取整后,结果为123。

八、bigdecimal取正数

import java.math.BigDecimal;

public class BigDecimalTest {
    public static void main(String[] args) {
        BigDecimal bd1 = new BigDecimal("-123.456");
        BigDecimal bd2 = bd1.abs();
        System.out.println("取正数的结果为:" + bd2);
    }
}

使用BigDecimal类的abs()方法可以获得该BigDecimal对象的正数。在上述代码中,将BigDecimal对象-123.456取正数后,结果为123.456。

九、bigdecimal取正数函数的

import java.math.BigDecimal;

public class BigDecimalTest {
    public static void main(String[] args) {
        BigDecimal bd1 = new BigDecimal("-123.456");
        BigDecimal bd2 = getAbsoluteValue(bd1);
        System.out.println("取正数的结果为:" + bd2);
    }
    public static BigDecimal getAbsoluteValue(BigDecimal bd) {
        return bd.abs();
    }
}

可以自定义方法实现将BigDecimal对象转换成其正数。上述代码中,定义了一个名为getAbsoluteValue()的方法,可以将其它 BigDecimal对象转换为其绝对值的BigDecimal对象。