本文取自网络
Java的取整函数时间
Math.floor()、Math.ceil()、BigDecimal都是Java中的取整函数,但返回值却不一样
Math.floor()
通过该函数计算后的返回值是舍去小数点后的数值
如:Math.floor(3.2)返回3
Math.floor(3.9)返回3
Math.floor(3.0)返回3
Math.ceil()
ceil函数只要小数点非0,将返回整数部分+1
如:Math.ceil(3.2)返回4
Math.ceil(3.9)返回4
Math.ceil(3.0)返回3
----------------------------------------------------------
用Math.floor()做到四舍五入:
double a = 3.4,double b = Math.floor(a),if(a-b>=0.5){b += 1}
用Math.ceil()做到四舍五入:
double a = 3.4,double b = Math.ceil(a),if(b-a<=0.5){b += 1}
----------------------------------------------------------
BigDecimal四舍五入
传统的四舍五入,在Math类中并没有直接提供,必须使用Java.math.BigDecimal类来实现
new BigDecimal("2.0").setScale(0, BigDecimal.ROUND_HALF_UP)返回2
new BigDecimal("2.4").setScale(0, BigDecimal.ROUND_HALF_UP)返回2
new BigDecimal("2.5").setScale(0, BigDecimal.ROUND_HALF_UP)返回3
BigDecimal a = new BigDecimal(1000); return a.doubleValue();
==========================================
import java.math.*; public class Test { public static void main(String[] args) { MathContext mc = new MathContext(3, RoundingMode.HALF_DOWN); //精度为3,舍入模式为大于0.5进1,否则舍弃。 BigDecimal a=new BigDecimal(10); BigDecimal b=new BigDecimal(3); System.out.println(a.divide(b,mc)); } }