一、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对象。