概述
BigDecimal四舍五入
public static void round_half_up() {
System.out.println("四舍五入(保留位后一位是5进位) = " + new BigDecimal("2.35").setScale(1, BigDecimal.ROUND_HALF_UP)); 常用
System.out.println("四舍五入(保留位后一位是5舍弃) = " + new BigDecimal("2.35").setScale(1, BigDecimal.ROUND_HALF_DOWN));
System.out.println("四舍五入(保留位是奇数) = " + new BigDecimal("4.55").setScale(1, BigDecimal.ROUND_HALF_EVEN)); 向最接近数字方向舍入的舍入模式,如果与两个相邻数字的距离相等,则向相邻的偶数舍入。
System.out.println("四舍五入(保留位是偶数) = " + new BigDecimal("4.45").setScale(1, BigDecimal.ROUND_HALF_EVEN)); 向最接近数字方向舍入的舍入模式,如果与两个相邻数字的距离相等,则向相邻的偶数舍入。
System.out.println(" 进位 = " + new BigDecimal("2.31").setScale(1, BigDecimal.ROUND_UP));
}
注意:如果是除的话保留两位小数:
((new BigDecimal(s1).divide(new BigDecimal(s), 4, BigDecimal.ROUND_HALF_UP)).multiply(BigDecimal.valueOf(100))).setScale(2, BigDecimal.ROUND_HALF_UP))
输出结果:
四舍五入(保留位后一位是5进位) = 2.4
四舍五入(保留位后一位是5舍弃) = 2.3
四舍五入(保留位是奇数) = 4.6
四舍五入(保留位是偶数) = 4.4
进位 = 2.4
说明:
ROUND_CEILING
Rounding mode to round towards positive infinity.
向正无穷方向舍入
ROUND_DOWN
Rounding mode to round towards zero.
向零方向舍入
ROUND_FLOOR
Rounding mode to round towards negative infinity.
向负无穷方向舍入
ROUND_HALF_DOWN
Rounding mode to round towards “nearest neighbor” unless both neighbors are equidistant, in which case round down.
向(距离)最近的一边舍入,除非两边(的距离)是相等,如果是这样,向下舍入, 例如1.55 保留一位小数结果为1.5
ROUND_HALF_EVEN
Rounding mode to round towards the “nearest neighbor” unless both neighbors are equidistant, in which case, round towards the even neighbor.
向(距离)最近的一边舍入,除非两边(的距离)是相等,如果是这样,如果保留位上的数字是奇数,使用ROUND_HALF_UP ,如果是偶数,使用ROUND_HALF_DOWN
ROUND_HALF_UP
Rounding mode to round towards “nearest neighbor” unless both neighbors are equidistant, in which case round up.
向(距离)最近的一边舍入,除非两边(的距离)是相等,如果是这样,向上舍入, 1.55保留一位小数结果为1.6
ROUND_UNNECESSARY
Rounding mode to assert that the requested operation has an exact result, hence no rounding is necessary.
计算结果是精确的,不需要舍入模式
ROUND_UP
Rounding mode to round away from zero.
向远离0的方向舍入
int 四舍五入
/**
* 四舍五入
*/
int roundNum = (int) Math.round(result);
/**
* 向上取整
*/
int ceilNum = (int) Math.ceil(result);
/**
* 向下取整
*/
int floorNum = (int) Math.floor(result);
BigDecimal比较大小
public static void main(String[] args) {
BigDecimal a = new BigDecimal(10);
BigDecimal b = new BigDecimal(5);
if (a.compareTo(b) == 0)
System.out.println("a = b");
if (a.compareTo(b) == -1)
System.out.println("a < b");
if (a.compareTo(b) == 1)
System.out.println("a > b");
if (a.compareTo(b) != 0)
System.out.println("a != b");
if (a.compareTo(b) != -1)
System.out.println("a >= b");
if (a.compareTo(b) != 1)
System.out.println("a <= b");
}
最后
以上就是怕孤单舞蹈为你收集整理的java实现BigDecimal/int四舍五入的全部内容,希望文章能够帮你解决java实现BigDecimal/int四舍五入所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复