各种函数是java的精髓,熟练使用函数能极大的提高对项目的编码能力,本篇文章我们就来看看其中的四舍五入函数是怎么实现的。
java中我们可以使用java.math.BigDecimal来进行四舍五入,除此之外还能直接使用DecimalFormat来控制小数位数的精度来进行四舍五入。
//使用DecimalFormat直接就可以控制小数的位数了 double resultVar = 1231231.1123682321; DecimalFormat dfc = new DecimalFormat("#.######"); String cellContent = dfc.format(resultVar); System.out.println(" cellContent " + cellContent);
在函数使用中,有时它会动态保留小数的位数,甚至在银行家算法中四舍五入并不完全是5入,所以在某些情况下我们就需要将3.155退位成3.15.
这时我们可以
double d = value; BigDecimal a = new BigDecimal(d); // BigDecimal a = new BigDecimal(String.valueOf(d)); System.out.println("a.setScale(2,2)=" + a.setScale(6, BigDecimal.ROUND_HALF_DOWN));BigDecimal.setScale() 方法用于格式化小数点
setScale(1, BigDecimal.ROUND_DOWN) 直接删除多余的小数位, 如2 .35 会变成2 .3 setScale(1, BigDecimal.ROUND_UP) 进位处理, 2.35 变成2 .4 setScale(1, BigDecimal.ROUND_HALF_UP) 四舍五入, 2.35 变成2 .4 setScaler(1, BigDecimal.ROUND_HALF_DOWN) 四舍五入, 2.35 变成2 .3, 如果是5则向下舍
例:
public class MathTest { public static void main(String[] args) { System.out.println("小数点后第一位=5"); System.out.println("正数:Math.round(11.5)=" + Math.round(11.5)); System.out.println("负数:Math.round(-11.5)=" + Math.round(-11.5)); System.out.println(); System.out.println("小数点后第一位<5"); System.out.println("正数:Math.round(11.46)=" + Math.round(11.46)); System.out.println("负数:Math.round(-11.46)=" + Math.round(-11.46)); System.out.println(); System.out.println("小数点后第一位>5"); System.out.println("正数:Math.round(11.68)=" + Math.round(11.68)); System.out.println("负数:Math.round(-11.68)=" + Math.round(-11.68)); } }
以上就是本篇文章的所有内容,更多相关java实例敬请关注奇Q工具网了解详情。
推荐阅读: